visit
리스트에 inf
로 초기화10 19
답: 2
2*X
의 위치로 갈 때의 범위를 nx * 2 <= k
로 해서 2*X
후 위치가 k
이상이 되고 -1
로 도착했을 경우를 구하지 못했음. --> 범위를 nx * 2 <= 100000
로 변경해서 통과
import sys
from collections import deque
input = sys.stdin.readline
n, k = map(int, input().split())
visit = [float('inf')] * 200001
visit[n] = 0
answer = []
q = deque([n])
while q:
nx = q.popleft()
if nx == k:
print(visit[nx])
break
if nx * 2 <= 100000 and visit[nx * 2] > visit[nx] + 1:
q.append(nx * 2)
visit[nx * 2] = visit[nx] + 1
if nx > 0 and visit[nx - 1] > visit[nx] + 1:
q.append(nx - 1)
visit[nx - 1] = visit[nx] + 1
if nx + 1 <= k and visit[nx + 1] > visit[nx] + 1:
q.append(nx + 1)
visit[nx + 1] = visit[nx] + 1
맞왜틀 ㅠㅠ 하면서 엄청 제출했다.. 🤣