practivceAlgorithm/swexpertacademy
[SWEA][Python] 5251 최소 이동 거리
findTheValue
2021. 10. 10. 03:25
최소 이동거리 문제로 인접리스트가 주어져 다익스트라로 풀이했습니다.
from heapq import heappush, heappop
def dijkstra(start):
heap = []
dists[start] = 0
heappush(heap, (0, start))
while heap:
cur_dist, cur_node = heappop(heap)
for next_node, next_dist in graph[cur_node]:
dist = cur_dist + next_dist
if dists[next_node] > dist:
dists[next_node] = dist
heappush(heap, (dist, next_node))
for test in range(1, int(input()) + 1):
N, E = map(int, input().split())
graph = {i: [] for i in range(N + 1)}
for __ in range(E):
a, b, c = map(int, input().split())
graph[a].append((b, c))
dists = {i : float('inf') for i in range(N + 1)}
dijkstra(0)
print(f'#{test} {dists[N]}')