최단경로 골드4 (백준, 다익스트라)
2023. 1. 28. 19:03ㆍ코딩 테스트 준비
728x90
반응형
import sys
import heapq
INF = int(1e9)
input = sys.stdin.readline
n,k = map(int, input().split())
start = int(input())
graph = [[] for _ in range(n+1)]
dis = [INF] * (n+1)
def find(s):
q = []
heapq.heappush(q, (0, s))
dis[s] = 0
while q:
dist, now = heapq.heappop(q)
if dis[now] < dist:
continue
for i in graph[now]:
cost = dist + i[1]
if cost < dis[i[0]]:
dis[i[0]] = cost
heapq.heappush(q, (cost, i[0]))
for _ in range(k):
s,e,v = map(int,input().split())
graph[s].append((e,v))
find(start)
for i in range(1, n+1):
if dis[i] == INF:
print('INF')
else:
print(dis[i])
코드를 외우는게 좋겠다.
728x90
반응형
'코딩 테스트 준비' 카테고리의 다른 글
상자넣기 실버 2 (백준, DP) (0) | 2023.01.29 |
---|---|
특정한 최단경로 골드4 (백준, 다익스트라) (0) | 2023.01.28 |
컨베이너 벨트 위의 로봇 골드5 (백준, 구현) (0) | 2023.01.28 |
스티커 실버1 (백준, DP) (0) | 2023.01.28 |
한국이 그리울 땐 서버에 접속하지 실버3 (백준, 문자열) (0) | 2023.01.28 |