728x90
반응형
문제: https://www.acmicpc.net/problem/17478
사용 알고리즘: 재귀
(난 정말 재귀가 싫어 엉엉ㅜㅜ)
아아 알겠다 -> 어..? -> 아 진짜 알겠다 -> 어..? ㅜㅜ
무한 반복했던 문제.. 사실 모든 ps 를 못하지만, 재귀는 더더 헷갈리고 어렵게 느껴진다
하지만 어쩌겠어.. 이거 못하면 dfs 도 몬해.. 연습만이 살길..
입력이 2일 때의 출력
어느 한 컴퓨터공학과 학생이 유명한 교수님을 찾아가 물었다.
"재귀함수가 뭔가요?" "잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을 통달한 선인이 있었어.
마을 사람들은 모두 그 선인에게 수많은 질문을 했고, 모두 지혜롭게 대답해 주었지.
그의 답은 대부분 옳았다고 하네. 그런데 어느 날, 그 선인에게 한 선비가 찾아와서 물었어."
____"재귀함수가 뭔가요?"
____"잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을 통달한 선인이 있었어.
____마을 사람들은 모두 그 선인에게 수많은 질문을 했고, 모두 지혜롭게 대답해 주었지.
____그의 답은 대부분 옳았다고 하네. 그런데 어느 날, 그 선인에게 한 선비가 찾아와서 물었어."
________"재귀함수가 뭔가요?"
________"재귀함수는 자기 자신을 호출하는 함수라네"
________라고 답변하였지.
____라고 답변하였지.
라고 답변하였지.
"재귀함수가 뭔가요?" 가 반복되다가 3번째 나왔을 때 재귀 탈출
-> 아하 베이스케이스는 입력한 N 이 되겠구나
-> 반복되는 부분을 출력하고 다시 함수를 불러 재귀를 실행시켜야겠다
-> 라고 답변하였다. 는 재귀 호출이 끝나고 돌아왔을 때 출력되도록 하면 되겠다
전체 코드
N = int(input())
def printing(num):
answer = [
"\"잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을 통달한 선인이 있었어.",
"마을 사람들은 모두 그 선인에게 수많은 질문을 했고, 모두 지혜롭게 대답해 주었지.",
"그의 답은 대부분 옳았다고 하네. 그런데 어느 날, 그 선인에게 한 선비가 찾아와서 물었어.\""
]
for i in range(3):
print(("____" * num) + answer[i])
def rec(n, cur):
print(("____" * cur) + "\"재귀함수가 뭔가요?\"")
if cur == n: # 베이스 케이스
print(("____" * cur) + "\"재귀함수는 자기 자신을 호출하는 함수라네\"")
else:
printing(cur)
rec(n, cur+1) # 재귀 호출
print(("____" * cur) + "라고 답변하였지.")
print("어느 한 컴퓨터공학과 학생이 유명한 교수님을 찾아가 물었다.")
rec(N, 0)
728x90
반응형
'백준' 카테고리의 다른 글
[백준/Python] 1260 DFS 와 BFS (1) | 2024.07.18 |
---|---|
[백준/Python] 10994 별 찍기- 19 (0) | 2024.07.17 |
[백준/Python] 1316 그룹 단어 체커 (0) | 2024.07.16 |
[백준/Python] 1003 피보나치 함수 (1) | 2024.07.14 |
[백준/Python] 9184 신나는 함수 실행 (1) | 2024.07.14 |