n, k = map(int, input().split())
MAX = 100001
visited = [0] * MAX
def bfs():
queue = deque([n])
while queue:
position = queue.popleft()
if position == k:
return visited[position]
for next_visit in (position-1, position+1, position * 2):
if 0 <= next_visit < MAX and not visited[next_visit]:
visited[next_visit] = visited[position] + 1
queue.append(next_visit)
print(bfs())
메모리 초과에 주의해야한다. 주어진 범위 0 <= number < 100001를 조건에 설정을 해줘야지 초과가 발생하지 않는다.
그리고 이동 순서를 -1, +1, *2 순서대로 설정해야한다. 그냥 문제 그대로 조건을 설정해놓자..ㅡㅡ