728x90
반응형
기본적인 다익스트라 문제이다.
import heapq
import sys
INF = sys.maxsize
input = sys.stdin.readline
def dijkstra(start):
q = []
heapq.heappush(q, (0, start))
dis[start] = 0
while q:
d, now = heapq.heappop(q)
if dis[now] < d:
continue
for v, w in graph[now]:
cost = d + w
if cost < dis[v]:
dis[v] = cost
heapq.heappush(q, (cost, v))
N, M = int(input()), int(input())
graph = [[] for _ in range(N+1)]
dis = [INF]*(N+1)
for _ in range(M):
a, b, w = map(int, input().split())
graph[a].append((b, w))
s, e = map(int, input().split())
dijkstra(s)
print(dis[e])
728x90
반응형
'Agorithm > 백준 알고리즘' 카테고리의 다른 글
백준 알고리즘 11404번 플로이드(python) (0) | 2021.03.22 |
---|---|
백준 알고리즘 13549번 숨바꼭질 3(python) (0) | 2021.03.22 |
백준 알고리즘 1446번 지름길(python) (0) | 2021.03.22 |
백준 알고리즘 1504번 특정한 최단 경로(python) (0) | 2021.03.22 |
백준 알고리즘 1753번 최단경로(python) (0) | 2021.03.22 |