작성
·
449
0
안녕하세요 큰돌 선생님
http://boj.kr/3a67aafe251a46a88295e4f3ffdb4392
만약에 DFS를 void로 선언해서 전역변수로 counting을 한다면, 어떻게 달라질지 확인해보다가 안풀려서 질문드립니다 ^^;
예제출력은 1 7 13인데 제가 올린건 1 6 13으로 나오던데... 디버깅이 좀 빡세서요 ㅜ 어떤이유인지 같이 봐주실수 있을까요?
답변 3
2
http://boj.kr/324db7f034ce41558c43e94f6d5e86b1
위 소스처럼 수정하니까 됐어요
디버깅은 제대로 하기 어려워서 아래와 같은 추측을 해봤습니다
재귀함수안에서 전역변수를 11, 21라인에서 중복해서 조작하니까 잘 안 된것 같다는 생각이 듭니다
1
ddo님이 잘 답변해주신 것같습니다.
전역변수를 기반으로 한다면
f1, f2, f3 이런식으로 함수가 호출되면서 counter가 ++되는 로직이겠죠? counter를 1씩 증가시키는 것은 올바른 로직이나.
근데 갑자기 어떠한 함수에서는 counter = 1 이렇게 갑자기 1로 초기화를 해버리면 예상하지 못한 결과가 나오게 됩니다.
감사합니다.
0