bjchae9627   4년 전

안녕하세요, 다익스트라 알고리즘을 공부하고 이 문제를 풀어봤는데 이틀째 풀리지가 않아서 이렇게 질문을 드립니다ㅠㅠ

초반에는 '틀렸습니다'가 떴는데 조금 수정을 거쳐서 이제 '런타임 오류'가 발생하는 단계가 되었습니다.

다른 질문들 확인해보면 보통 edge들을 2차원 array로 저장해서 발생하는 것 같더라구요ㅠㅠ

그런데 저는 edges[i]에 i에서 이동할 수 있는 node들을 추가하여 인접행렬?을 이용하였는데 왜, 어디서 런타임 오류가 발생하는지 도저히 모르겠습니다ㅠ

코드가 조금 길고 난잡해보여서 최대한 주석을 달아보았지만 가독성이 좋지는 않아보이네요ㅠㅠ

혹시 어떤 점이 잘못되었는지 알려주신다면 정말 감사하겠습니다!

wider93   4년 전

현재 반복문의 종료가 뽑은 정점의 거리가 inf 일 때 이루어집니다. 모든 정점이 연결되어 있을 때 None이 나올 때까지 계속해서 뽑게 되고, 그러면 문제가 발생하겠네요.


3 2
1
1 2 6
1 3 4

Traceback (most recent call last):
File "test.py", line 85, in
popped = pop()
File "test.py", line 26, in pop
result = heap[1]
IndexError: list index out of range

댓글을 작성하려면 로그인해야 합니다.