템플릿 코드에서 if cur_v not in costs: 부분에 의문이 있습니다.
질문하고 나서 질문이 애매해서 제대로 된 대답을 못들을 꺼라고 예상했는데 제가 생각한 요지를 정말 잘 생각해서 대답해주셨네요. 감사합니다. 덕분에 애매하던 생각들이 완벽하게 이해됐습니다.제가 이해하는데 도움이 되었던 생각을 적어보자면핵심은 BFS처럼 너비를우선적으로 탐색하면서 Heap의 우선순위가 합쳐져서 costs에 넣은 값보다 나중에 탐색된 값이 더 우선순위가 높을수 없다 라고 생각했습니다.DFS처럼 코드가 적혀있다면 A->B까지 탐색하고 F까지 탐색하는 시간이(코드상에서 시간)A->C->F 보다 먼저 일어날수 있어요.그럼 A->B->F가 A->C->F보다 작은지 큰지 모르는 상태로 먼저 탐색되고 값이 costs에 들어가 버릴꺼에요. 하지만 개발남노씨의 코드는 BFS의 구조 + Heap자료구조 형태이기 때문에 일단 첫번째 노드에서 연결된 모든 노드를 탐색한(1->2(5), 1->4(1)가 있다고 가정) 다음에 그 중 우선순위 높은 쪽으로 pop이 되고 그 다음에 또 우선순위가 높은 쪽으로 이동합니다. 즉 만약에 1->4->? 로 가는 총합이 1->2로 가는 우선순위보다 높다면 1->2는 또 heap에서 뒤로 밀려납니다. 이렇게 작동하니까..costs에 넣는 값은 항상 우선순위가 가장 높은 값이 확정되었을때 heap에서 pop되는 거라고 이해 했습니다. 원래 처음에는 다른사람도 이해시키겠다고 글 적은건데 그건 좀 힘드네요. 쨋든 저는 이해했습니다.감사합니다.