재귀함수가 뭐냐고 묻는 횟수만큼 이야기 보따리 하나를 풀며 마지막에 답변해주는 재귀함수 자동봇(?)이다.
함수 내에서 자기 자신을 호출하는 함수(횟수+1)을 하면 반복문 i++의 효과를 낼 수 있다.
그리고 재귀함수를 종료할 때는 최종으로 출력된 재귀함수부터 역순으로 종료한다.
어디서 많이 본 구조같은 이야기다. 선입후출(FILO)이다.
FILO의 대표적인 자료구조는 stack! 가장 먼저 들어온 녀석부터 고인물이 된다.
재귀함수도 마찬가지다. 그 성질을 이용해서 출력 결과를 보며 어떤 순서로 넣고,
어떤 조건에서 최종 답변을 출력할지 정한다.
처음에 큰따옴표를 안 써야하는 곳에 여러번 써서 결과가 왜 틀린줄도 모르고 맞왜틀이라며 와르르 제출했다.
순서는 바로 이것!
## 숫자는 0부터 시작!
"재귀함수가 뭔가요?"
"잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을 통달한 선인이 있었어.
마을 사람들은 모두 그 선인에게 수많은 질문을 했고, 모두 지혜롭게 대답해 주었지.
그의 답은 대부분 옳았다고 하네. 그런데 어느날, 그 선인에게 한 선비가 찾아와서 물었어."
## 이후 재귀함수가 호출된다. +1번째가 된다.
____"재귀함수가 뭔가요?"
## 만약 n이 1이라면, 여기서 if문 안으로 들어가게 된다.
____"재귀함수는 자기 자신을 호출하는 함수라네"
____라고 답변하였지.
## 그럼 이제 호출이 다 끝난 셈이고, 다음 줄로 넘어가 남아있는 0번째 재귀함수를 종료하기 시작한다.
라고 답변하였지.
그럼 함수를 만들었으니 n을 받아 이 함수를 실행시켜주면 된다.
단, 함수에 n을 넣는 것이 아니라 i는 반복문처럼 0부터 시작하고, 조건문에 n을 이용하면 된다.
이걸 풀고나니 속이 다 후련하다.
'공부 > 백준' 카테고리의 다른 글
[백준] 1252번 (0) | 2022.06.15 |
---|---|
[백준] 2417번 (0) | 2022.06.15 |
[백준] 17298번 (0) | 2022.06.15 |
[백준] 2460번 (0) | 2022.06.15 |
[백준] 25191번 (0) | 2022.06.15 |