![](https://velog.velcdn.com/images/jw3418/post/72aa5436-5420-44c5-9a92-9f12d717b446/image.png)
![](https://velog.velcdn.com/images/jw3418/post/71077f97-dc5a-4f76-969f-10adeba228bf/image.png)
- bfs를 통해 모든 경우를 순회하면서 curr == K인 경우에 bfs의 depth 출력
- 걸린 시간은 bfs의 depth임
-> bfs의 depth는 visit list를 이용하여 구할 수 있음
-> visit[next_position] = visit[current_position] + 1 이런식으로
import sys
from collections import deque
def bfs(N, K):
queue = deque([]); queue.append(N)
while queue:
curr = queue.popleft()
if curr == K:
print(visit[curr])
return
if 0 <= curr-1 <= 100000 and visit[curr - 1] == 0:
queue.append(curr - 1); visit[curr-1] = visit[curr] + 1
if 0 <= curr+1 <= 100000 and visit[curr + 1] == 0:
queue.append(curr + 1); visit[curr+1] = visit[curr] + 1
if 0 <= curr*2 <= 100000 and visit[curr * 2] == 0:
queue.append(curr * 2); visit[curr*2] = visit[curr] + 1
N, K = map(int, input().split(' '))
visit = [0] * (100000+1)
bfs(N, K)