안녕하세요 56분 35초 문제 질문있습니다
안녕하세요, 강의 잘 듣고 있습니다. 재귀함수 질문이 있어서 글 올립니다.

재귀함수가 maxVal(arr, 5) -> maxVal(arr, 4) -> maxVal(arr, 3) -> maxVal(arr, 2) -> maxVal(arr, 1) 에서 조건을 최종적으로 만족했으면 거기서 마무리가 아니라 다시 반대로 거슬러 올라오는 것까지가 과정의 마무리 인건가요?
답변 2
0
재귀함수를 타고 가는 것은 "호출"만 정리한 것입니다.
최종적으로 전부 리턴을 받고, 가장 처음에 호출한 최상위 함수까지 다 끝내고 코드가 종료되어야지 전체 코드를 수행한 것입니다.
0
안녕하세요, 인프런 AI 인턴입니다. isu님.
재귀 함수에 대한 질문을 주셨군요. 설명을 도와드리겠습니다.
재귀 함수의 거슬러 올라오는 과정
재귀 함수는 특정 조건(베이스 케이스)을 만족하면 종료되지만, 종료될 때 한 번 더 중요한 작업이 이뤄집니다. 현재의 재귀 호출은 가장 깊이 들어간 호출(함수 호출 스택에서 가장 위에 있는 호출)부터 작업을 마치고 차례대로 상위 호출로 돌아옵니다. 이 과정이 함수 스택에서 맨 위로의 반대로 풀리면서 이루어지는 것입니다.
예시: maxVal 함수
1. 재귀 호출의 깊이: maxVal(arr, 5)부터 시작해서 maxVal(arr, 1)까지 스택이 쌓입니다.
2. 베이스 케이스 도달 후 리턴 시작: maxVal(arr, 1)에서의 반환값이 상위 호출로 전달되어 maxVal(arr, 2)로 돌아가고 이 과정이 계속 되풀이됩니다.
3. 최종 결과 결정: 이렇게 스택을 거슬러 올라오면서, 각 호출에서 조건에 따라 최대값 비교가 이루어져 최종적으로 maxVal(arr, 5)로리턴돼서 ‘최대값’을 결정합니다.
이렇듯 재귀 함수는 조건을 만족하면 멈추고, 스택을 거슬러 올라가며 마지막에 원하는 결과를 도출하는 것이 방법론적인 특징입니다.
관련 유사 질문
비슷한 질문과 답변을 통해 재귀 함수와 관련된 다른 예제를 참고하실 수도 있습니다:
재귀 함수와 배열의 최대값 찾기 방법 - 이 게시물에서는 배열의 최대값을 찾는 방법과 재귀 함수의 구체적 구현에 대해 설명합니다.
재귀 함수의 작동 방식 이해 - 재귀 함수의 작동 원리와 스택을 활용하는 방법에 대해 자세히 안내된 글입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드립니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
필기자료 사라졌나요?(실기 일주일만에 안돼서 재도전-_-)
0
51
2
26년 1회 실기 해설 강의
0
68
2
53번 4-1 자료 오류 있는 것 같습니다.
0
73
2
7번문제
0
60
2
C언어 변형문제 9번문제 Pdf 수정요청
0
48
2
메서드 오버드라드
0
51
2
실수
0
46
1
공부 우선순위 우선강의 알려주세요
0
90
1
생성자 호출순서 강의 10번 문제 30분대 질문입니다
0
49
2
25년 2회 기출 5:40 질문입니다.
0
43
2
모의고사1회 3번 파이썬문제
0
75
2
C언어 출제변형 6번 문제
0
50
2
c언어 출제변형 강의 질문
0
32
2
28:40
0
34
2
C : 언어 배열과 문자열 수업자료
0
31
2
파이썬 리스트, 딕셔너리 질문
0
43
2
모의고사 관련 질문 건
1
69
3
자료 내용 오류
0
64
2
정적 변수, 정적 메서드(static) v2
0
51
2
v1.2 와 v0.91 PDF
0
104
1
업캐스팅 (부모형태, 자식생성자)
0
51
2
정보처리산업기사 준비중입니다.
0
74
2
실기 D -6
0
105
2
(기출) 2024년 2회 기출문제 - 이론 포함 22분32초 질문입니다
0
60
3





