반응형
[ Contents ]
1. 문제 (링크 참조)
2. 문제 풀이
한 번 풀면 재귀함수의 정의를 잊어버릴 수 없는 문제입니다.
재귀함수(Recursion Function): 함수 내에 자기 자신을 다시 호출하는 함수
재귀함수는 자기 자신을 호출하는 함수입니다. 함수 정의부분에 자기 자신을 호출합니다.
def factorial(n):
if n == 1: # n이 1이면 재귀를 마칩니다.
return 1
return n * factorial(n-1)
재귀함수 대표 예제, 팩토리얼 함수입니다. 마치 반복문처럼 n이 1이 될 때까지 자기자신을 반복해서 호출합니다. 아무런 조건없이 계속 자기 자신만 호출한다면, 무한 루프에 빠지겠죠...
2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학
재귀함수의 특성만 알고 있다면, 쉽게 해결할 수 있습니다.
3. 코드
N = int(input())
print("어느 한 컴퓨터공학과 학생이 유명한 교수님을 찾아가 물었다.")
# 재귀함수
def dialog(n):
underline = "____"*n
print(underline+"\"재귀함수가 뭔가요?\"")
if n == N:
print(underline + "\"재귀함수는 자기 자신을 호출하는 함수라네\"")
print(underline + "라고 답변하였지.")
return "end" #종료
print(underline+"\"잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을 통달한 선인이 있었어.")
print(underline+"마을 사람들은 모두 그 선인에게 수많은 질문을 했고, 모두 지혜롭게 대답해 주었지.")
print(underline+"그의 답은 대부분 옳았다고 하네. 그런데 어느 날, 그 선인에게 한 선비가 찾아와서 물었어.\"")
dialog(n+1)
print(underline+"라고 답변하였지.")
dialog(0)
n회 재귀하면 함수를 마칩니다. n이 N회 재귀를 마쳐야 반환값이 생기며, 앞선 재귀함수를 빠져나오면서 "라고 답변하셨지."가 출력됩니다.
반응형
'Algorithm' 카테고리의 다른 글
[구현] 백준 2523 별 찍기 - 13 - Python (0) | 2022.02.08 |
---|---|
[구현] 백준 2522 별 찍기 - 12 - Python (0) | 2022.02.08 |
[Brute Force] 백준 2231 분해합 - Python (0) | 2022.02.07 |
[Brute Force] 백준 1436 영화감독 숌 - Python (0) | 2022.02.07 |
[구현/수학] 백준 1085 직사각형에서 탈출 - Python (0) | 2022.02.07 |
댓글