백준/ Gold 5 문제 , 백준 파이썬 14284 , 간선 이어가기 2 [다익스트라 알고리즘]
풀이 시간
Check Point ! ( 해당사항 ✓체크 )
1. 막힘 없이 수월하게 풀린 문제인가?
2. 1시간이내로 풀렸던 문제인가?
3. 1시간 이상 or 며칠을 두고 풀어봤더니 풀린 문제인가?
4. 시간을 써도 도무지 풀 수 없는 문제인가?
5. 솔루션을 찾아봤는가?
-------------------------------------------------------------------------------------------
난이도 체감
1. 최상
2. 상
3. 중
4. 하
<이해도>
1. 완벽히 이해
2. 다소 헷갈리는 부분들이 있음
3. 이해 못함
<덧붙일 말>
문제 출처
https://www.acmicpc.net/problem/14284
14284번: 간선 이어가기 2
정점 n개, 0개의 간선으로 이루어진 무방향 그래프가 주어진다. 그리고 m개의 가중치 간선의 정보가 있는 간선리스트가 주어진다. 간선리스트에 있는 간선 하나씩 그래프에 추가해 나갈 것이다.
www.acmicpc.net
정답
from cmath import inf
import heapq
import sys
input=sys.stdin.readline
N,M=map(int,input().split())
graph=[[] for _ in range(N+1)]
dist=[inf]*(N+1)
for i in range(M):
a,b,c=map(int,input().split())
graph[a].append((c,b))
graph[b].append((c,a))
start,end=map(int,input().split())
q=[(0,start)]
while q:
Z,X=heapq.heappop(q)
if dist[X]<Z:
continue
for cost, next in graph[X]:
cost+=Z
if cost<dist[next]:
dist[next]=cost
heapq.heappush(q,[cost,next])
print(dist[end])
반응형
'알고리즘 공부 > 백준 - 파이썬' 카테고리의 다른 글
백준/ Gold 4 문제 , 백준 파이썬 22865 , 가장 먼 곳 [다익스트라 알고리즘] (0) | 2022.08.30 |
---|---|
백준/ Gold 3 문제 , 백준 파이썬 9694 , 무엇을 아느냐가 아니라 누구를 아느냐가 문제다 [다익스트라 알고리즘] (1) | 2022.08.30 |
백준/ Gold 4 문제 , 백준 파이썬 18223 , 민준이와 마산 그리고 건우 [다익스트라 알고리즘] (0) | 2022.08.30 |
백준/ Gold 2 문제 , 백준 파이썬 2211 , 네트워크 복구 [다익스트라 알고리즘] (0) | 2022.08.30 |
백준/ Gold 4 문제 , 백준 파이썬 10282 , 해킹 [다익스트라 알고리즘] (0) | 2022.08.29 |