-
코드
import heapq import sys inf = sys.maxsize V,E = map(int, input().split()) k = int(input()) tree = list([] for _ in range(V+1)) destination = [inf]*(V+1) heap = [] def dijkstra(start): destination[start] = 0 heapq.heappush(heap, [0,start]) while heap: w, n = heapq.heappop(heap) for node, distance in tree[n]: new_distance = w + distance if new_distance < destination[node]: destination[node] = new_distance heapq.heappush(heap, [new_distance, node]) for _ in range(E): u, v, w = map(int, input().split()) tree[u].append([v,w]) dijkstra(k) for i in destination[1:]: print(i if i != inf else "INF")
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 11657번 타임머신 (파이썬) (0) 2022.01.05 [백준] 1504번 특정한 최단 경로 (파이썬) (0) 2022.01.05 [백준] 7562번 나이트의 이동 (파이썬) (0) 2022.01.05 [백준] 7576번 토마토 (파이썬) (0) 2022.01.05 [백준] 2178번 미로 탐색 (파이썬) (0) 2022.01.05