from collections import deque
def bfs(n,k):
q = deque()
q.append((n, 0))
visited =[0] * 100001
visited[n] = 1
while 1:
x , t = q.popleft()
if x == k:
print(t)
break
else:
if (x+1) < 100001 and visited[x+1] == 0:
q.append((x+1, t+1))
visited[x+1] =1
if (x-1) >= 0 and visited[x-1] == 0 :
q.append((x-1, t+1))
visited[x-1] = 1
if 0 < 2*x < 100001 and visited[2*x] == 0 :
q.append((2*x, t+1))
visited[2*x] = 1
N, K = map(int, input().split())
bfs(N, K)
시간복잡도: O(n)
728x90
'코테 > 백준 문제풀이' 카테고리의 다른 글
백준 회의실배정 (0) | 2023.01.03 |
---|---|
백준 2667 (0) | 2023.01.01 |
백준 21611 마법사 상어와 블리자드 (0) | 2022.04.29 |
백준12100번 2048 (Easy) (0) | 2022.04.28 |
백준 3055 탈출 (1) | 2021.08.24 |