5972-g5 성공
This commit is contained in:
47
workbook_8708/gold/5972-g5.py
Normal file
47
workbook_8708/gold/5972-g5.py
Normal file
@@ -0,0 +1,47 @@
|
||||
# 택배 배송
|
||||
|
||||
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~
|
||||
|
||||
시간 복잡도:
|
||||
|
||||
해설: 다익스트라
|
||||
"""
|
||||
Reference in New Issue
Block a user