uuyzpil   3년 전

각 s ,g ,h 에서 다익스트라 한번 돌리고

목적지 후보 쭉 돌면서 아래 조건으로 출력했는데 테스트케이스는 맞는데 어디서 틀린지를 모르겄네요 ㅠㅠ

후보 리스트 오름차순 

if (s[후보지] == s[g] + g[h] + h[후보지] )  후보 출력

else if (s[후보지] == s[h] + h[g] + h[후보지]) 후보 출력


myeongbo123   3년 전

s와 g가 같을 수도 있습니다. 그런 경우에도 scost와 gcost에 최단 거리가 정상적으로 저장이 되어야 하는데 위 코드에 의하면 g와 s가 같을 경우 모두 28번 줄의 조건에 걸리게 되어 scost에만 최단 거리가 정상적으로 저장이 되고 gcost는 전혀 갱신되지 않습니다. 그 부분만 수정하면 될 듯 합니다.

myeongbo123   3년 전

개인적인 의견으로는 dik 함수에 long long 형 배열도 매개변수로 추가해 scost, gcost, hcost 한꺼번에 처리하는 게 어떨까 합니다.

uuyzpil   3년 전

답변 감사합니다. g + s 거리를 찾아서 더해주면 되는거였는데 그걸 캐치를 못해서 틀렸었네요 

친절한 답변 감사드립니다.

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