안녕하세요? 디버깅 결과, for문의 종료조건이 잘못되어 경로를 역추적하는 과정에서 무한루프가 돌 수 있음을 확인했습니다.
for (int i = dest; i != 1; i = path[i])
경로를 역추적하는 for문인 52번째 줄의 종료 조건은 i 값이 1인 경우인데, 이 경우 시작하는 정점의 번호가 1이 아닌 경우 탐색 경로에 1번 정점이 들어가지 않는 케이스가 생길 수 있는데, 이 경우 1번 정점을 찾지 못 해 for문이 종료되지 못하고 무한 루프를 돌 수 있습니다.
우리가 원하는 것은 경로의 시작인 시작 정점을 만났을 때 경로 탐색을 멈추고 종료하는 것이니, 종료 조건을 시작 정점을 만났을 때로 변경해 주시면 문제를 맞추실 수 있습니다.
궁금증이 해결되셨기를 바랍니다!
yoohoo030 1년 전
질문게시판 보면서 최대한 수정했는데 계속해서 메모리초과가 나네요ㅠㅠ
몇시간째 수정해도 답이 안나와서 질문 올립니다. 도와주세요 고수님들😭