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

2828won님의 프로필 이미지
2828won

작성한 질문수

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

2024년 2회 17번 재귀함수

해결된 질문

작성

·

44

0

재귀 함수로 계속 돌면 Char c = a 만 남고 if(idx <0) return""; 으로 빠져나오는거 아닌가요?ㅠ

idx : 0, c: a,seen[a]:false

idx : 1, c: b,seen[b]:false

어떻게 나오는지 모르겠습니다.

 

답변 1

0

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

이거는 잘못된 해설이라 제가 추가로 다시 올린 유튜브 영상이 있습니다. 그 영상 참고해보시죠.

영상 바로가기 ↓

https://youtu.be/ps0HOFDqJck

 

해당 영상과 별개로, 24년 2회 영상을 조금 수정해서 유료 강좌에 올라갈 예정입니다.

2828won님의 프로필 이미지
2828won
질문자

image.png

 

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

안녕하세요, 혹시 제 C언어 디테일 잡기 부분에서 재귀함수 부분 들으셨을까요?

함수가 리턴을 만나도, 그 전에 함수가 호출한 것이기 때문에 아직 안 끝난 것입니다.

 

재귀함수는 탈출조건이 완성되면 스스로를 부른 함수에게 값을 돌려주고,

그 값을 돌려받은 함수는 다시 자신의 값을 연산해서 나를 부른 함수에 돌려주고..

돌려주고 돌려주고... 계속 반복하다가 최초로 호출한 함수까지 리턴을 받은 뒤에

 

최종적으로 return을 만나서 사용자에게 값을 반환합니다.

저 이미지에 적혀있는 "comp 함수를 빠져나가는데" 라는 것은

빠져나간다는 것이 아래로 바로 내려가는 것이 아닙니다.

 

return의 정확한 의미는 "나를 불러준 코드에게 내가 값을 반환하고 종료"하는 것이지 코드를 빠져나가서 아래로 흘러가는 걸로 해석하시면 안됩니다.

 

혹시 이 부분이 질문이 아니시라면, 조금 더 구체적으로 말씀 부탁드립니다..

2828won님의 프로필 이미지
2828won

작성한 질문수

질문하기