반응형

다익스트라 2

[백준 파이썬] 1753번 최단경로

1753번 최단경로 www.acmicpc.net/problem/1753 1753번: 최단경로 첫째 줄에 정점의 개수 V와 간선의 개수 E가 주어진다. (1≤V≤20,000, 1≤E≤300,000) 모든 정점에는 1부터 V까지 번호가 매겨져 있다고 가정한다. 둘째 줄에는 시작 정점의 번호 K(1≤K≤V)가 주어진다. www.acmicpc.net 문제 파이썬 풀이 다익스트라 알고리즘을 활용하여 최단 경로를 찾습니다. 다익스트라 알고리즘은 1) 모든 가중치가 양수, 2) 방향 그래프 인 경우 활용할 수 있습니다. 가중치가 음수인 경우는 벨만포드 알고리즘을 사용합니다. import sys import collections import heapq sys.setrecursionlimit(10**6) input = ..

Python/백준 2021.04.21

[알고리즘] 다익스트라 알고리즘(Dijkstra Algorithm) 파이썬

다익스트라 알고리즘(Dijkstra Algorithm) 간선 길이가 양의 정수인 그래프에서 최단 거리를 계산 간선 길이를 고려하여 노드에 순위를 매기고자, 일반적인 큐 대신에 우선순위 큐를 사용하는 것을 말고는 BFS와 동일 시간 복잡도는 우선 순위 큐 구현 방법에 달려있다. 이진 히프 O((V+E)logV), 삽입과 삭제 O(logV), 최소값 추출 O(logV) 다익스트라 알고리즘은 시작점s부터 가장 가까운 노드u를 포함하여 그래프를 생성하고, 해당 노드u로 이동합니다. 그래프 밖에 있는 s와 가장 가까운 노드v를 그래프에 포함합니다. 이 과정을 반복합니다. 파이썬 코드 # 다익스트라 알고리즘 # 간선 길이가 양의 정수인 그래프에서 최단 거리를 계산 # 간선 길이를 고려하여 노드에 순위를 매기고자 일..

Python/알고리즘 2021.04.21
반응형