
아래 백준 로고를 클릭하면 해당 문제로 이동합니다 😀
BFS를 이용하면 금방 풀 수 있..나..? (사실 금방 푼거 아님)
수빈이와 동생이 이동할 수 있는 곳은 0 ~ 100000이므로 그 길이의 리스트를 모두 0으로 셋팅해줬다.
그리고 현재 수빈이의 위치에서 이동 가능한 -1, +1, *2를 이동했을 때 이동 횟수를 저장했다.
동생의 위치와 겹칠 때 까지 무한반복을 하면 된다 ..
from collections import deque
N, K = map(int, input().split())
dis = [0] * 100001
q = deque()
q.append(N)
while q:
c_pos = q.popleft()
if c_pos == K:
print(dis[c_pos])
break
for move_pos in (c_pos-1, c_pos+1, 2 * c_pos):
if 0 <= move_pos < 100001 and not dis[move_pos]:
dis[move_pos] = dis[c_pos] + 1
q.append(move_pos)
