[Algorithm] 32강 : 최단 경로 알고리즘 기초 문제 풀이

전보 문제 해결 아이디어 핵심 아이디어 : 한 도시에서 다른 도시까지의 최단 거리 문제로 치환할 수 있다. N과 M의 범위가 충분히 크기 때문에 우선 순위 큐를 활용한 다익스트라 알고리즘을 구현 풀이 구현 import heapq import sys input = sys.stdin.readline INF = int(1e9) # 무한을 의미하는 값으로 10억을 설정 def dijkstra(start): q = [] # 시작 노드로 가기 위한 최단 거리는 0으로 설정하여, 큐에 삽입 heapq.heappush(q,(0,start)) distance[start] = 0 while q: # 큐가 비어있지 않다면 #가장 최단 거리가 짧은 노드에 대한 정보를 꺼내기 dist, now = heapq.heappop(q)..

[Algorithm] 30강 : 다익스트라 최단 경로 알고리즘의 정의와 구현

최단경로 문제 1.1 최단 경로 문제란? 최단 경로 알고리즘은 가장 짧은 경로를 찾는 알고리즘을 의미 다양한 문제 상황 한 지점에서 다른 한 지점까지의 최단 경로 한 지점에서 다른 모든 지점까지의 최단 경로 모든 지점에서 다른 모든 지점까지의 최단 경로 각 지점은 그래프에서 노드로 표현 지점 간 연결된 도로는 그래프에서 간선으로 표현 1.2 다익스트라 최단 경로 알고리즘 개요 특정한 노드에서 출발하여 다른 모든 노드로 가는 최단 경로를 계산 다익스트라 최단 경로 알고리즘은 음의 간선이 없을 때 정상적으로 동작 현실 세계의 도로(간선)는 음의 간선으로 표현되지 않는다. 다익스트라 최단 경로 알고리즘은 그리디 알고리즘으로 분류 매 상황에서 가장 비용이 적은 노드를 선택해 임의의 과정을 반복한다. 1.3 알고..