jsch678   1년 전

반례나 어디서 틀렸는지 알고싶습니다 ㅠㅠ

adung7   1년 전

반례)

5 4 2 1
1 2
1 3
2 4
3 5

답 :

4
5

jsch678   1년 전

감사합니다..! 혹시 어디서 틀렸는지 알 수 있을까요..?!

jsch678   1년 전

cnt 증가 시키는 타이밍이 문제인것 같네요 해결해보겠습니다. 반례 감사합니다!

adung7   1년 전

26번째줄에서 큐에서 원소를 뺄때마다 거리를 표시하기 위한 cnt를 하나 증가시키셨는데

이는 시작 노드로부터의 거리가 제대로 표시되지 않습니다. 

위를 예시로 들어 설명해드리자면 1번에서 시작해 2,3을 큐에 넣은 시점에선 cnt가 1이 되겠죠. 

여기까진 제대로 작동하는것처럼 보이나 2번을 큐에 꺼내고 cnt증가후 4랑 연결되있으므로 4를 큐에 넣고 다시 큐에 있던 3을 뺄때 cnt가 증가하게 됩니다.(큐에서 원소를 뺄때마다 cnt가 증가되기 때문에)

이로 인해 1->3->5로 가는 거리가 2임에도 불구하고 cnt는 3이 되어 거리가 3으로 표시됩니다. 이로 인해 작성자님 코드에선 4밖에 출력이 안 되는것입니다.

최대한 쉽게 설명하려고 했으나 이해 안 되면 다시 질문주세요.

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