다익스트라 알고리즘 12

백준 1916번 최소비용 구하기

문제 링크입니다: https://www.acmicpc.net/problem/1916 백준 1753번(http://jaimemin.tistory.com/555)이랑 똑같은 문제였습니다.문제에서 버스들은 결국 그래프 내의 간선들이였기 때문에 동일하게 풀 수 있는 문제였습니다.Priority Queue는 Default로 작은 값들이 우선순위가 높기 때문에 - 를 해서 우선순위 큐에 집어넣어주는 것이 핵심이였습니다.그리고 정점이 0이 아닌 1부터 시작하므로 n++ 해주는 것도 중요했습니다. #include #include #include using namespace std; const int CITYMAX = 1000 + 1; const int BUSMAX = 100000 + 1; const int INF = ..

알고리즘/BOJ 2018.06.15

백준 1753번 최단경로

문제 링크입니다: https://www.acmicpc.net/problem/1753 작년 자료구조 시간에 배운 다익스트라(Dijkstra) 알고리즘을 복습하기 위해 풀어본 문제였습니다.다익스트라 알고리즘은 시작점을 기준으로 인접한 노드들을 방문하며 시작점에서 해당 노드까지의 최소 거리를 찾는 알고리즘입니다.인접한 노드들을 방문한 뒤에는 인접한 노드들의 인접한 노드들을 확인하는 방식으로 작동합니다.한가지 주의할 점은 인접한 노드들을 방문할 때 비용이 최소인 노드부터 방문하므로 우선순위 큐에 비용을 음수 처리하여 넣어야한다는 점입니다.Priority Queue는 기본적으로 값의 크기대로 우선순위를 부여하기 때문에 위와 같이 처리해야합니다.물론, 우선순위 큐를 선언할 때 원하는 규칙을 설정해준다면 보다 직관적..

알고리즘/BOJ 2018.05.19