문제 출처
1. 문제설명
- 방향 그래프와 시작점이 주어졌을 때, 다른 모든 정점으로의 최단 경로를 구하라
- 문제 분류
2. 알고리즘 설계
- 간선과 가중치가 최대 10까지 주어지므로, 다익스트라로 풀이할 수 있겠다.
- 다익스트라는 BFS와 굉장히 유사한데, 우선순위 큐(pq)를 사용한다는 특징이 있다.
- 보통은 pq를 pair형으로 선언해서 가중치를 앞에 두고 풀이할 것이다.
- 나는 인접행렬은 노드가 앞이고, pq는 가중치가 앞인 게 헷갈려서 커스텀 자료구조를 사용했다.
- 이제 정점을 하나씩 꺼내면서 연결된 노드들을 pq에 담으면 된다.
- 단, 다음 노드의 가중치가 현재 노드와 다음 노드 가중치의 합보다 작다면 넣는다.
3. 전체 코드