Dijkstra함수 쪽에서 처음에 for문 돌리면서 모든 노드를 넣어주시는 것 같은데, 다시 사용될 가능성이 있기 때문에
Relax 가 된 이후에는 Relax되어 distance 값이 바뀐 v에 대해서 다시 Insert를 하는 과정이 필요합니다. 이런 과정을 거치게 하면 처음에는 s만 넣고 시작해도 잘 돌아갑니다.
또 그런 과정을 거치면 CreateHeap 과정에서 capacity 값을 늘려주어야 할 상황도 생길 수 있습니다. 실제로 제출 해보면 Segmentation fault가 일어나는 것 같아요.
위의 방법과 CreateHeap에서 minHeap size를 적당한 크기(size*2)로 맞춘 후에 제출해보았더니 63%정도에서 시간초과가 떴습니다.
시간 초과에 대해서는 아직 해결이 안되었네요ㄷ
gkfkagkfka12 5년 전
C언어로 구현해서 좀 긴 편이지만 완벽하게 동작한다고 생각했는데 잘 안되네요.
질문검색란에 있는 대부분의 테스트 케이스까지 돌려봤고 다 맞는데 어디가 문제인지 모르겟습니다.
9%쯤에 틀립니다.