본문 바로가기

카테고리 없음

2022하계모각코 5주차 결과

import sys
import heapq

inf = sys.maxsize

v, e = map(int, sys.stdin.readline().split())
g = [[] for _ in range(v + 1)]
k = int(sys.stdin.readline())



for i in range(e):
    a, b, c = map(int, sys.stdin.readline().split())
    g[a].append([c, b])

result = [inf for _ in range(v + 1)]
result[k] = 0

q = []
heapq.heappush(q, [0, k])

while q:
    dis, end = heapq.heappop(q)
    for d, x in g[end]:
        d += dis
        if d < result[x]:
            result[x] = d
            heapq.heappush(q, [d, x])

for i in range(1, v + 1):
    print(result[i] if result[i] != inf else "INF")

금일 최단경로를 풀어보고 여러가지 파이썬과 알고리즘을 공부할수 있는 계기가 되었습니다.