🏷 문제
💡 코드
from collections import deque
def find(n, k):
visited = [False] * 100001
cnt = [-1] * 100001
visited[n] = True
cnt[n] = 0
q = deque()
q.append(n)
while q:
target = q.popleft()
if target == k:
return cnt[target]
if 0 <= target*2 < 100001 and visited[target*2] == False:
q.append(target*2)
cnt[target*2] = cnt[target]
visited[target*2] = True
if 0 <= target+1 < 100001 and visited[target+1] == False:
q.append(target+1)
cnt[target+1] = cnt[target]+1
visited[target+1] = True
if 0 <= target-1 < 100001 and visited[target-1] == False:
q.append(target-1)
cnt[target-1] = cnt[target]+1
visited[target-1] = True
n, k = map(int, input().split())
res = find(n, k)
print(res)
🔑