Baekjoon-13549-숨바꼭질 3
27 Sep 2022N,K = map(int, input().split())
queue = [N]
visited = [-1 for _ in range(int(1e5+1))] # 걸린 시간, 경우의 수
visited[N] = 0
while queue:
pos = queue.pop(0)
jump = 1
if pos != 0:
while pos*(2**jump) <= int(1e5):
if visited[pos*(2**jump)] == -1:
visited[pos*(2**jump)] = visited[pos*(2**(jump-1))]
queue.append(pos*(2**jump))
if pos*(2**jump) > K:
break
jump += 1
for i in [pos+1, pos-1]:
if 0 <= i <= int(1e5):
if visited[i] == -1:
visited[i] = visited[pos] + 1
queue.append(i)
print(visited[K])