47 lines
871 B
Python
47 lines
871 B
Python
# 택배 배송
|
|
|
|
import sys
|
|
import heapq as h
|
|
|
|
input = sys.stdin.readline
|
|
|
|
def solution():
|
|
n, m = map(int, input().rstrip().split())
|
|
|
|
g = {i+1: [] for i in range(n)}
|
|
dk = [float('inf') for _ in range(n+1)]
|
|
|
|
for _ in range(m):
|
|
v, w, k = map(int, input().rstrip().split())
|
|
g[v].append((k, w))
|
|
g[w].append((k, v))
|
|
|
|
heap = []
|
|
h.heappush(heap, (0, 1))
|
|
dk[1] = 0
|
|
while heap:
|
|
now_dist, now_v = h.heappop(heap)
|
|
|
|
if now_dist > dk[now_v]:
|
|
continue
|
|
|
|
for nxt_k, nxt_v in g[now_v]:
|
|
new_dist = dk[now_v]+nxt_k
|
|
if new_dist < dk[nxt_v]:
|
|
dk[nxt_v] = min(dk[nxt_v], dk[now_v]+nxt_k)
|
|
h.heappush(heap, (new_dist, nxt_v))
|
|
|
|
print(dk[n])
|
|
|
|
return
|
|
|
|
|
|
solution()
|
|
|
|
"""
|
|
걸린 시간: 11:10~
|
|
|
|
시간 복잡도:
|
|
|
|
해설: 다익스트라
|
|
""" |