티스토리 뷰
728x90
반응형
문제 요약
- 알고리즘 분류: 다익스트라
- 난이도: Gold5
- 문제내용:
- 시작점 부터 도착점까지의 최단거리를 구해라
문제풀이
이번에는 문제 유형은 그래프 탐색중에 다익스트라 알고리즘 문제이다. 다익스트라 알고리즘 기본적인것을 묻기 때문에 자세한 설명은 여기서 참조하면된다. 풀이에 대한 설명은 다익스트라 알고리즘알면 풀수 있기때문에 따로 설명은 하지 않겠다.
Code
Python
import sys
import heapq
from collections import deque
input = sys.stdin.readline
INF = float('inf')
def dijkstra(start, end):
distances = [INF] * (N + 1)
distances[start] = 0
queue = [(start, 0)]
while queue:
now_node, now_distance = heapq.heappop(queue)
if now_distance > distances[now_node]: continue
for node, weight in grape[now_node]:
distance = now_distance + weight
if distance < distances[node]:
distances[node] = distance
heapq.heappush(queue, (node, distance))
return distances[end]
N = int(input())
grape = {i:[] for i in range(1, N + 1)}
for _ in range(int(input())):
a, b , value = map(int, input().split())
grape[a].append((b, value))
start, end = map(int, input().split())
print(dijkstra(start, end))
728x90
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[BAEKJOON]1504 특정한 최단 경로 (0) | 2023.01.17 |
---|---|
[BAEKJOON]1238 파티 - Python (0) | 2023.01.16 |
[BAEKJOON]15686 치킨 배달- Python (0) | 2023.01.12 |
[BAEKJOON]14502 연구소 - Python (0) | 2023.01.11 |
[BAEKJOON]16953 A → B (0) | 2023.01.10 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 누적합
- Programmerse
- level2
- LeetCode
- 배열
- 파이썬
- java
- Python
- 백준
- 동적계획법
- 재귀호출
- 동적 계획법
- JSCODE
- 알고리즘
- Greedy
- 구현
- 자바
- BaekJoon
- 그리디
- 백트레킹
- DFS
- 수학
- 그래프
- spring-boot
- BFS
- DP
- 이론
- 넓이 우선 탐색
- 문자열
- 조합
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함