백준 1753번 다익스트라 (파이썬)

728x90
반응형
import sys
import collections
import heapq
V,E=map(int,sys.stdin.readline().split())
K=int(sys.stdin.readline())
graph=collections.defaultdict(list)

for i in range(E):
    u,v,w=map(int,sys.stdin.readline().split())
    graph[u].append((v,w))

dist=collections.defaultdict(int)
q=[(0,K)]

while q:
    time,node=heapq.heappop(q)
    if node not in dist:
        dist[node]=time
        for v,w in graph[node]:
            alt=time+w
            heapq.heappush(q,(alt,v))

for x in range(1,V+1):
    if x in dist:
        print(dist[x])
    else: print('INF')
    

 

728x90
반응형
TAGS.

Comments