강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

dnrwls9115님의 프로필 이미지
dnrwls9115

작성한 질문수

[자바/Java] 문과생도 이해하는 DFS 알고리즘! - 입문편

촌수계산 (백준 2644)

dfs 파라미터에 count를 넣는이유

작성

·

14

·

수정됨

0

안녕하세요. 기존처럼 dfs함수내에서 함수가 실행될때마다 answer++를 해서 조건에 일치 할 떄 그냥 answer를 출력하게해도 될것같은데

count라는 파라미터는 answer를 -1로 초기화를 해놨기 때문에 넣는건가요?

 

아니면 answer로 하면 단순 dfs 함수 호출 횟수를 늘리는거고, 이 문제의 본질은 트리의 depth를 물어보는거가 되는거고 그래서 count로 depth를 알려주는건가 싶습니다

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. dnrwls9115님께서 남겨주신 질문에 대한 답변을 드리겠습니다.

DFS를 사용하는 알고리즘에서, count라는 파라미터를 사용하는 이유는 주로 경로의 길이나 깊이를 추적하기 위해서입니다. count를 파라미터로 넘겨주게 되면, 재귀 호출마다 count 값이 증가하면서 경로의 길이를 정확하게 계산할 수 있습니다. 이렇게 하는 것이 전역 변수 answer를 사용하는 것보다 코드의 명확성과 안정성 측면에서 더 안전합니다.

전역 변수를 사용하는 경우, DFS 호출이 끝난 뒤에 값이 누적되거나 잘못된 결과를 초래할 수 있습니다. 이 때문에 전역 변수 대신 매개변수를 사용하면 재귀 호출의 특성상 각 경로에서의 count 값이 영향을 받지 않기 때문에, 보다 정확한 결과를 얻을 수 있습니다.

더 자세한 설명을 보고 싶으시면 아래의 답변 링크를 참고하세요:
- 촌수계산질문: count의 사용 목적에 대한 설명이 잘 되어 있습니다.
- 2644 촌수계산 문제에 관한 질문: 전역 변수와 매개변수 사이의 차이에 대해 다룹니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

dnrwls9115님의 프로필 이미지
dnrwls9115

작성한 질문수

질문하기