문제 접근
반복되지 않는 출력문 - "어느 한 ~ 물었다."
반복되는 출력문 - "재귀함수가 뭔가요?" / 답변
반복된 출력이 변경되는 부분 - 끝까지 갔을 때 답변이 "재귀함수는 자기 자신을 호출하는 함수라네"로 특수함
-> 입력값을 매개변수로 하는 함수에 매개변수에 -1을 한 재귀함수를 호출한다. 매개변수가 0이 되었을 때 답변을 다르게 하도록 구현
정답 코드
import sys
def what(t):
line = "____"
if t >= 1:
print(line*(n-t) + '"재귀함수가 뭔가요?"')
print(line*(n-t) + '"잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을 통달한 선인이 있었어.')
print(line*(n-t) + '마을 사람들은 모두 그 선인에게 수많은 질문을 했고, 모두 지혜롭게 대답해 주었지.')
print(line*(n-t) + '그의 답은 대부분 옳았다고 하네. 그런데 어느 날, 그 선인에게 한 선비가 찾아와서 물었어."')
what(t- 1)
if t == 0:
print(line*(n-t) + '"재귀함수가 뭔가요?"')
print(line*(n-t) + '"재귀함수는 자기 자신을 호출하는 함수라네"')
print(line*(n-t) + "라고 답변하였지.")
n = int(sys.stdin.readline())
print("어느 한 컴퓨터공학과 학생이 유명한 교수님을 찾아가 물었다.")
what(n)
재귀할 때마다 line(____)이 배가 되도록 구현하였다.
줄마다 큰따옴표의 유무와 위치가 다름에 주의. 대충 내다가 3번이나 틀렸다.
'알고리즘 > 백준' 카테고리의 다른 글
[백준 알고리즘] 2231번: 분해합 (파이썬 / Python) (1) | 2022.08.03 |
---|---|
[백준 알고리즘] 10814번: 나이순 정렬 (파이썬 / Python) (0) | 2022.08.02 |
[백준 알고리즘] 10870번: 피보나치 수 5 (파이썬 / Python) (0) | 2022.08.02 |
[백준 알고리즘] 2805번: 나무 자르기 (파이썬 / Python) (0) | 2022.08.02 |
[백준 알고리즘] 2839번 : 설탕 배달 (파이썬 / Python) (0) | 2022.08.01 |