다익스트라 알고리즘
192
작성한 질문수 15
제가 이해한 것이 맞는지 궁금해서 질문드립니다.
pq에서 poll이 됐다는 것은 poll이 된 해당 정점은 dis 배열에서 최소 비용이 확정됐다는 것이죠?
만약 3번 정점의 비용이 4로 최소비용 확정이 되었는데 이것은 1 -> 3으로 갔을 때인 거잖아요. 그럼 1이 아닌 다른 정점에서 3번으로 가는 경우도 pq에서 poll이 될텐데 이미 확정이 났기 때문에 수행속도를 줄이기 위해 if continue 문을 쓰신건가요?
답변 2
0
안녕하세요^^
잘 이해하고 계십니다. 그래도 안전을 위해서 if 조건을 만족할 때 continue 하도록 코드를 짜시기 바랍니다.
0
지식공유자님 다익스트라 알고리즘을 공부하다가 헷갈려진 것이 있어 여쭤봅니다.
영상 속의 입력예제에서는 맨 처음에 2번 정점의 최소비용은 12가 되었다가 나중에는 11로 바뀌었잖아요?
이렇게 바뀌게 된 이유가 아직 모든 정점을 방문하지 않았다가 점차 방문하다 더 낮은 비용을 찾게되어 업데이트된 건가요?
그렇다면 결국 pq에 (2, 12)는 poll이 되게 될텐데 무작정 poll이 되었다고 최소비용이라 확정된 게 아니고 if continue문을 통과해야만 최소비용 확정이지 않나요??
0
안녕하세요, 인프런 AI 인턴입니다. rlgus4531님!
다익스트라 알고리즘에 대한 질문을 해주셨군요. 다익스트라 알고리즘은 모든 정점의 최단 거리를 계산하는 데 아주 유용한데요, 이해하시기 쉽게 설명드리겠습니다.
pq에서 poll이 됐다는 의미:
pq는 우선순위 큐(Priority Queue)를 의미하며, 이는 가장 작은 값(최소 비용)을 가진 정점을 먼저 처리하도록 하는 자료구조입니다.poll()되었을 때 해당 정점의 최소 비용이 확정되었다는 뜻입니다. 즉, 우선순위 큐에서 꺼낸 정점은 그때까지의 경로 중 가장 비용이 낮은 상태로 해당 정점에 도달한 것이므로, 그 정점에 대한 최단 거리가 확정됩니다.
이미 확정된 정점과 if continue:
- 특정 정점(예: 3번 정점)에 대한 최단 거리가 확정되었다면, 이후에 다른 경로를 통해 같은 정점에 도달하더라도, 그 비용은 항상 이상일 수밖에 없습니다. 따라서
if문 등을 사용하여 이미 확정된 정점은 더 이상 처리하지 않도록 합니다. 이는 불필요한 처리를 줄이고 실행 효율성을 높여줍니다.
- 특정 정점(예: 3번 정점)에 대한 최단 거리가 확정되었다면, 이후에 다른 경로를 통해 같은 정점에 도달하더라도, 그 비용은 항상 이상일 수밖에 없습니다. 따라서
이 내용을 이해하셨다면, 다익스트라가 어떻게 최단 경로를 효율적으로 계산하는지를 이해하신 것입니다. 각 정점을 한 번만 확정하고 나중에 중복 체크를 하지 않도록 하는 것이 이 알고리즘의 핵심 중 하나입니다.
더 자세한 이해를 돕기 위해 유사한 질문의 답변을 참고해 보시길 바랍니다. 특히, 다익스트라 알고리즘 질문드립니다. 게시글이 도움될 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
안녕하세요. 바뀐 채점사이트 관련해서 문의드립니다.
0
33
1
갑자기 채점 사이트가 바뀌었어요
0
34
1
문제 리스트 페이지
0
29
1
채점 사이트 관련 질문드립니다
0
24
1
봉우리 문제 질문입니다
0
84
2
씨름 선수 문제에서 각 선수의 몸무게나 키가 같을 수도 있다면?
0
65
0
이 코드랑 영상 코드중에 뭐가 더 좋은 코드인가요?
0
72
0
가중치 방향 그래프에서 가중치가 0인 간선을 표현하는 방법
0
67
1
좌표 정렬 문제 이 코드가 왜 틀린지 모르겠습니다 ㅠㅠ
0
85
2
6-7 강의에서
0
48
1
6-6. 장난꾸러기 질문 있습니다.
0
46
1
강의 수강후 코딩테스트
0
111
1
answer 변수 사용 여부
0
46
1
2중 for문
1
85
2
2-11. 임시반장정하기 (Runtime Error)
0
63
1
혹시 LinkedList 같은 자료 구조들은 따로 배우지 않나요?
0
70
1
이런 풀이는 어떨까요
0
44
1
자바 스트림 방식의 효율성 질문 드립니다.
0
57
1
알고리즘 자료 구조들..
0
63
1
StringBuilder vs BufferdWriter
0
48
1
원더랜드(프림)
0
50
1
이런 코드는 어떤가요?
0
61
1
bfs 풀이
0
57
1
병합정렬
0
57
1





