youngkua24   2년 전

두개의 코드중 하나는 50%대에서 틀렸습니다

다른 하나는 정답이라고 하네요..

하나는 블로그에서 가져온거고, 제가 제출한 코드는 모양새가 좀 달랐지만 어느 부분에서 틀렸는지 비교하며 고치다 보니 최대한 비슷하게 만들었니다 ㅜㅜ

 

wider93   2년 전

두 코드의 차이는 (2x, x+1, x-1)과 (x-1, x+1, 2x)밖에 없습니다.

0에서 출발하는 경우가 문제가 됩니다. 이 경우 result[0] = result[0] + 1이 먼저 실행되어 출발지의 거리가 1이 되고, 이후 1과 -1은 거리 2인 것으로 계산되어 틀린 값을 내놓습니다. 

(2x, x+1, x-1)로 적어서 문제라기보다는 미방문 점 초기화를 0으로 한 것이 문제가 된다고 보면 됩니다. 가령 -1로 해 두고 출발점 거리를 0으로 대입했다면 이런 괴상한 반례는 생기지 않습니다.

youngkua24   2년 전

감사합니다! 덕분에 이해했습니다 

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