강의

멘토링

로드맵

Inflearn brand logo image

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

정철님의 프로필 이미지
정철

작성한 질문수

(2025) 일주일만에 합격하는 정보처리기사 실기

(기출) 2023년 3회 코드해석 문제

2023년 3회 코드해석 문제 2차 재귀함수 질문입니다.

해결된 질문

작성

·

70

0

안녕하세요.

설명 잘 해주셔서 1+1까지는 이해가 되는데요.

 

그 위에 6, 5, 4는 왜 더하지 않는지 이해가 잘 안가서요.

 

그 전에 나왔던 1차 재귀함수 7x6x5x4x3x2x1은 이해가 됐는데

 

그 문제와 동일한 방식으로 보면 6,5,4를 같이 더해야 하지 않나 해서 궁금해서 여쭤봅니다.

답변 2

0

주말코딩님의 프로필 이미지
주말코딩
지식공유자

안녕하세요~ 번거로우시겠지만, 영상 내 몇분 몇초인지 작성해주셔야 답변이 가능합니다!

정철님의 프로필 이미지
정철
질문자

18:40초경입니다!

주말코딩님의 프로필 이미지
주말코딩
지식공유자

6, 5, 4라는 것이 어떻게 나오는지 잘 모르겠습니다.

호출한 것만 리턴하면 됩니다.

 

지금 보면 둘 중에 자식 클래스에 있는 것을 실행해야한다는 것은 아시겠죠? 같은 이름에 같은 파라미터를 봐서 자식 클래스에서 재정의했으니까요.

 

그러면 int compute(7)만 실행하면 되죠.

여기서 갈라질 때는 그냥 상위 함수가 호출한 것만 잘 계산해서 주면 됩니다.

 

compute(6) + compute(4)를 호출한 겁니다. 각각 빼기1 빼기3한거니까요.

그게 끝입니다.

 

그것을 계산하려면 또 6, 4에 대해서 가지가 갈라지는 것 뿐이죠.

 


 

재귀함수를 헷갈리는 이유는 자기 자신을 부른다는 환상때문에 그렇습니다.

자기자신을 부른다고 생각하지마시고, 아예 다른 함수명을 가진 것을 호출한다고 생각하시면 덜 헷갈릴 수 있습니다.

compute(6) + compute(4)가 아니라 아예 다른 abc(6)+bdc(4)라고 생각하시고, 로직은 똑같다고 생각해보세요.

 

그러면 그냥 단순히 숫자만 넣어가면서 쭉 리턴해주면 됩니다.

0

안녕하세요, 인프런 AI 인턴입니다. 정철님.

재귀 함수의 결과값에서 특정 숫자가 더해지지 않는 이유에 대해 궁금해하고 계시는군요. 재귀 함수는 주어진 논리와 조건에 따라 특정한 연산을 수행하며 호출됩니다. 예를 들어, compute(n-1) + compute(n-3) 형태로 호출되는 경우, 계산의 흐름은 함수의 정의에 따라 결과가 달라질 수 있습니다.

재귀 함수 문제 설정

  • 문제 설명:

    • 재귀 호출에서는 각 재귀 단계마다 정의된 기준(예: n-1, n-3)에 따라 함수가 호출됩니다.
    • 특정 조건에 해당하지 않으면, 및 계산의 경로에 포함되지 않는 값들은 결과에 영향을 미치지 않습니다.
  • 핵심 이해:

    • 예를 들어 compute(7)이 호출되었을 때 compute(6) + compute(4)처럼 내려갑니다. 이때, 각각의 결과값은 주어진 조건에 따라 다시 새로운 값으로 체계적으로 계산됩니다.
    • 특정 값들이 최종 누적 연산에 포함되지 않는 이유는 이러한 경로에서는 사용되지 않기 때문입니다.

관련된 설명과 답변이 담긴 기존의 질문과 답변을 통해 더 깊이 있는 이해에 도움이 될 수 있습니다:

재귀 함수 연산의 디테일을 이해하는 데 도움이 될 수 있도록 이 자료를 참고해 보세요. 추가적으로 궁금한 점이 있으시면 언제든지 질문해 주시기 바랍니다.

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

정철님의 프로필 이미지
정철

작성한 질문수

질문하기