최단경로 2

코딩테스트에서 자주 쓰는 C++ STL 라이브러리, 자료구조, 알고리즘 정리(2) - 다익스트라(Dijkstra)

DijkstraDijkstra는 비용이 있는 그래프에서 최단 거리를 찾는 알고리즘이다.최단 거리와 관련된 그래프 알고리즘에는 대표적으로 다음의 3개의 알고리즘도 존재한다.다익스트라 알고리즘 : 하나의 시작점에 대해 다른 모든 정점들까지의 최단 경로를 구함벨만포드 알고리즘 : 음의 가중치 고려플로이드 와샬 알고리즘 : 모든 정점에 대해 다른 모든 정점에 대한 최단경로를 구함이 중 기본이 되는 다익스트라 알고리즘을 정리해보았다.참고자료 관련 문제백준 1753번 최단경로SWEA 1249 보급로기본 개념다익스트라 알고리즘은 하나의 시작점에 대해 최단 경로를 찾는다.다시 말해 A에서 시작하면 B,C,D,E,F에 대한 최단 경로를 구한다는 것이다.음의 가중치는 고려하지 않는다.(음의 가중치를 고려한 최단거리 그래프..

[백준 BOJ] 1753_최단 경로

다익스트라에 대한 문제를 우선순위 큐를 사용하여 풀어보았다. 우선순위 큐는 최대 힙의 구조를 가지고 있는데, 최소 비용을 탐색해야하기 때문에, 비용 값을 음수화 하여 힙에 넣었다. 이 코드는 내가 구현한 코드가 아니라https://jaimemin.tistory.com/555 의 코드를 참고하였다. 함수의 형태가 void나 int가 아닌 vector를 사용하였는데 이런식의 코드 구현은 처음해봤다. return값을 담는 부분을 유의해야 할 것같다. 우선, 전역변수는 다음과 같이 선언하였다. #include #include #include const int MAX = 20001; const int INF = 987654321; using namespace std; int V, E, K; vectorgraph[..