백트래킹은 dfs와 코드가 거의 비슷한데, 말씀하신 22번째 줄의 유무로 백트래킹인지 dfs인지 나뉘게 됩니다.
22번째 줄의 경우, 재귀를 들어가기 전에 처리한 visit[i] = true를
재귀에서 나온 뒤 false로 바꿔주는 작업을 통해
"들어가기 전 했던 행동을 들어가기 전의 상태로 돌려놓게" 되며
이는 백트래킹의 가장 중요한 개념이라고 생각합니다.
결국 위와 같은 작업을 통해 해당하는 i점을 나중에 다시 재탐색 할 수 있게 됩니다.
12번째 줄에 디버깅 코드를 잘 넣으신 것 같은데
22번째줄 코드의 유무에 따른 값을 한번 잘 생각해보시면 이해에 큰 도움이 될 것 같습니다.
도움이 되셨으면 좋겠네요.
le_effort 4년 전
다른 블로그의 성공코드인데요
22번째 줄이 이해가 안됩니다
왜 저게 있는 건가요...?