💡문제접근
- BFS 완전탐색 유형의 문제
- 주의사항 : 1초 후에
X-1
또는 X+1
로 이동, 0초 후에 2×X
로 순간이동
💡코드(메모리 : 35272KB, 시간 : 120ms)
from collections import deque
import sys
input = sys.stdin.readline
N, K = map(int, input().strip().split())
visited = [-1] * 100001
def BFS(N):
queue = deque()
queue.append(N)
visited[N] = 0
while queue:
v = queue.popleft()
if v == K:
print(visited[v])
break
if 0 <= v - 1 <= 100000 and visited[v-1] == -1:
visited[v-1] = visited[v] + 1
queue.append(v-1)
if 0 <= 2 * v <= 100000 and visited[2*v] == -1:
visited[v*2] = visited[v]
queue.append(2*v)
if 0 <= v + 1 <= 100000 and visited[v+1] == -1:
visited[v+1] = visited[v] + 1
queue.append(v+1)
BFS(N)
💡소요시간 : 27m