첫번째 코드
아직 다익스트라 문제에 익숙해지는 중이다...
이제는 문제도 어렵고.... 해석도 조금씩 어려워지는 느낌 킁...
그래도 꾸준히 책을 따라서 작성해보자
다익스트라를 이용한 문제!
import sys
input = sys.stdin.readline
from queue import PriorityQueue
n = int(input())
m = int(input())
distance = [sys.maxsize] * (n+1)
visited = [False] * (n+1)
A = [[] for _ in range(n+1)]
for _ in range(m):
s, e, w = map(int, input().split())
A[s].append((e, w))
start, end = map(int, input().split())
def dijstra(start, end):
queue = PriorityQueue()
queue.put((0, start))
distance[start] = 0
while queue.qsize() > 0:
nowNode = queue.get()
now = nowNode[1]
if not visited[now]:
visited[now] = True
for n in A[now]:
if not visited[n[0]] and distance[n[0]] > distance[now] + n[1]:
distance[n[0]] = distance[now] + n[1]
queue.put((distance[n[0]], n[0]))
return distance[end]
print(dijstra(start, end))
통과!
코드를 따라 작성하는 것에 우울해하지 말고
다음에 계속 연속해서 풀어보자!
링크
programmers/백준/Gold/1916. 최소비용 구하기 at main · ornni/programmers
repository for recording Programmers Algorithm problem solving - ornni/programmers
github.com
'코딩 테스트 > do it! 알고리즘 코딩테스트' 카테고리의 다른 글
060 오민식의 고민 (0) | 2024.07.11 |
---|---|
058 K번째 최단경로 찾기 (0) | 2024.07.09 |
055 임계경로 (0) | 2024.07.04 |
056 최단경로 (0) | 2024.07.04 |
053 줄 세우기 (0) | 2024.07.02 |