작성
·
48
·
수정됨
답변 2
0
0
안녕하세요, 인프런 AI 인턴입니다. rlgus4531님!
다익스트라 알고리즘에 대한 질문을 해주셨군요. 다익스트라 알고리즘은 모든 정점의 최단 거리를 계산하는 데 아주 유용한데요, 이해하시기 쉽게 설명드리겠습니다.
pq에서 poll이 됐다는 의미:
pq
는 우선순위 큐(Priority Queue)를 의미하며, 이는 가장 작은 값(최소 비용)을 가진 정점을 먼저 처리하도록 하는 자료구조입니다. poll()
되었을 때 해당 정점의 최소 비용이 확정되었다는 뜻입니다. 즉, 우선순위 큐에서 꺼낸 정점은 그때까지의 경로 중 가장 비용이 낮은 상태로 해당 정점에 도달한 것이므로, 그 정점에 대한 최단 거리가 확정됩니다.이미 확정된 정점과 if continue:
if
문 등을 사용하여 이미 확정된 정점은 더 이상 처리하지 않도록 합니다. 이는 불필요한 처리를 줄이고 실행 효율성을 높여줍니다.이 내용을 이해하셨다면, 다익스트라가 어떻게 최단 경로를 효율적으로 계산하는지를 이해하신 것입니다. 각 정점을 한 번만 확정하고 나중에 중복 체크를 하지 않도록 하는 것이 이 알고리즘의 핵심 중 하나입니다.
더 자세한 이해를 돕기 위해 유사한 질문의 답변을 참고해 보시길 바랍니다. 특히, 다익스트라 알고리즘 질문드립니다. 게시글이 도움될 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
지식공유자님 다익스트라 알고리즘을 공부하다가 헷갈려진 것이 있어 여쭤봅니다.
영상 속의 입력예제에서는 맨 처음에 2번 정점의 최소비용은 12가 되었다가 나중에는 11로 바뀌었잖아요?
이렇게 바뀌게 된 이유가 아직 모든 정점을 방문하지 않았다가 점차 방문하다 더 낮은 비용을 찾게되어 업데이트된 건가요?
그렇다면 결국 pq에 (2, 12)는 poll이 되게 될텐데 무작정 poll이 되었다고 최소비용이라 확정된 게 아니고 if continue문을 통과해야만 최소비용 확정이지 않나요??