


=> 즉 pq의 디폴트는 less라는 것이다.


위의 방식대로 하게 되면, 시작정점 처리가 되는 것이 아니고,
연결되어 있는 2번과 4번부터 진행한다.

올바른 코드
: 시작정점만 pq에 넣고 시작하자.

bfs 구조와는 다르다.
: bfs는 동일한 가중치이고, 다익스트라는 다른 가중치이다.
방문 처리를 여기서 하고 있다.

지금 우리는 pq에 가중치가 가장 작은 값부터 처리를 하는 것이므로, pq를 빼는 순간 nextV는 이미 처리된 정점이다.
- 예를 들어 a->c : 5 // a->b->c : 10 가 있다고 하자.
그렇다는 것은 a-> c : 5 이고, a->b : 4, b->c : 6 이라고 한다면, pq 입장에서 생각해보면, 굳이 a->b->c 갈 필요도 없이 a->c에서 최단값 구했기 때문에 visited[c] = true 된다는 것이다. 여러군데 걸쳐서 진행할 필요도 없다.
- 그런데 왜 여기서는 하지 않지? 생각할 수 있다.
: 여기의 코드는 연결된 정점간의 우선순위가 정해져 있지 않기 때문에 그냥 pq에다가 값을 넣어주는 부분이다.
그러니까. vertex[a][c] 즉 , c에 연결된 다음 정점들에 대해서 pq에 넣어주는 것이므로, visited 를 체크하거나, 방문처리하면 안된다.
-> visited를 사용하지 않으면, 이미 처리된 정점에 대해 연결된 상황이 있으면 , 이미 dist 계산이 완료되었지만, 또 진행하기 때문이다.