if visited == 0
...
dfs
....
if visited == 1
...
dfs
...
이런 식으로 했다가 틀려서... 원인 찾는데 매우 힘들었다...
다행히 질문 검색에서
1
5
5 3 4 5 1
라는 반례를 올려주신 분이 계셨는데,
저 반례를 가지고도 원인 파악하는데 시간이 엄청 결렸다.
내가 착각하고 있던 것이... 당연히 if문 하나로만 들어갈 것으로 착각했는데, 알고보니, dfs함수를 타고 들어가면서 visited값이 업데이트(0 -> 1) 되어 그 다음 if문의 dfs로 또 들어가게 되는 것이었다...
그래서 두번째 if문을 else if로 고쳐서 AC를 받았다...
아주 기본적인 것인데도, 원인을 찾지 못하고, 반례를 알고도 직접 출력을 해보며 디버깅해보고 나서야 겨우 원인을 파악했다... 반성하자...
댓글 없음:
댓글 쓰기