티스토리 뷰

728x90
반응형

백준 13549번 숨바꼭질3

백준 13549번 숨바꼭질3

bfs 다익스트라로 최소 거리를 계산함. 순간이동은 비용 0이라서 데크 appendleft()로 맨 앞에다 넣어줘야함.

코드

import sys
import collections
input = sys.stdin.readline

N, K = map(int, input().split())
Q = collections.deque([(N, 0)])
visited = [False]*100001
while Q:
    loc, count = Q.popleft()
    if loc == K:
        print(count)
        break
    if not visited[loc]:
        visited[loc] = True
        if 0<= (2*loc) <= 100000:
            # 순간이동 비용 0이라서 appendleft()
            Q.appendleft((2*loc, count))
        if 0<= (loc+1) <= 100000:
            Q.append((loc+1, count+1))
        if 0<= (loc-1) <= 100000:
            Q.append((loc-1, count+1))
728x90
반응형
댓글
반응형
250x250
글 보관함
최근에 달린 댓글
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Total
Today
Yesterday
링크