반응형
[ Contents ]
1. 문제 (링크 참조)
17478번: 재귀함수가 뭔가요?
평소에 질문을 잘 받아주기로 유명한 중앙대학교의 JH 교수님은 학생들로부터 재귀함수가 무엇인지에 대하여 많은 질문을 받아왔다. 매번 질문을 잘 받아주셨던 JH 교수님이지만 그는 중앙대
www.acmicpc.net
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번 문제, 구현 / 수학
[Algorithm] 단골 1번 문제, 구현 / 수학
[ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사용하
star7sss.tistory.com
재귀함수의 특성만 알고 있다면, 쉽게 해결할 수 있습니다.
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 |
댓글