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