[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))
- 왜 100000이 맥스인데 100001을 곱해줘야 하는가
- 01로 그냥 존재 여부만 확인하는 것이 시간초과를 막음
Author And Source
이 문제에 관하여([Python] 1697번), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@rkdud007/Python-1697번저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)