코테/백준 문제풀이

백준 1697번 파이썬

밤밭황제 2023. 1. 1. 18:52
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