[Python] 1697번

import sys
from collections import deque

N, K = map(int,sys.stdin.readline().split())
visited = [0] *100001

def bfs(N):
    ctn = 0
    queue = deque([[N,ctn]])
    while queue:
        c = queue.popleft()
        c_position = c[0]
        ctn = c[1]
        if not visited[c_position]:
            visited[c_position] = 1
            if c_position == K:
                return ctn
            ctn+=1
            if (c_position*2) <= 100000:
                queue.append([c_position*2,ctn])
            if (c_position+1 ) <= 100000:
                queue.append([c_position+1,ctn])
            if (c_position-1) >= 0:
                queue.append([c_position-1,ctn])
    return ctn

print(bfs(N))
  1. 왜 100000이 맥스인데 100001을 곱해줘야 하는가
  2. 01로 그냥 존재 여부만 확인하는 것이 시간초과를 막음

좋은 웹페이지 즐겨찾기