https://www.acmicpc.net/problem/13549
bfs로 풀이
from collections import deque, defaultdict
N,X = map(int,input().split(' '))
q = deque([(N,0)])
dp = defaultdict(lambda:999999999)
while q:
cur,time = q.popleft()
if cur>100001 or cur < 0:
continue
dp[cur] = min(time,dp[cur])
if time < dp[cur*2]:
q.append((cur*2,time))
if time+1 < dp[cur+1]:
q.append((cur+1,time+1))
if time+1 < dp[cur-1]:
q.append((cur-1,time+1))
print(dp[X])