자료구조&알고리즘/알고리즘 - 언어 기초
[알고리즘 문제 풀이][재귀] 백준 17478번 - 재귀함수가 뭔가요?
초코쨔응
2021. 11. 22. 22:25
백준 17478번 재귀함수가 뭔가요? 문제입니다.
(재귀 연습)
- 문제 설명: https://www.acmicpc.net/problem/17478
- 문제 풀이:
본 문제는 재귀 함수 구현 연습이 필요한 사람들이 풀면 좋을 문제입니다.
자기 자신을 호출하는 함수를 구현하여 재귀가 동작할 때 어떻게 진행되는지를 실제 출력을 통해 확인해보면 좋을 것 같습니다.
- 코드:
def recursion(n, depth):
print("____"*depth, end="")
print('"재귀함수가 뭔가요?"')
if n == 0:
print("____"*depth, end="")
print('"재귀함수는 자기 자신을 호출하는 함수라네"')
else:
print("____"*depth, end="")
print('"잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을 통달한 선인이 있었어.')
print("____"*depth, end="")
print("마을 사람들은 모두 그 선인에게 수많은 질문을 했고, 모두 지혜롭게 대답해 주었지.")
print("____"*depth, end="")
print('그의 답은 대부분 옳았다고 하네. 그런데 어느 날, 그 선인에게 한 선비가 찾아와서 물었어."')
recursion(n-1, depth+1)
print("____"*depth, end="")
print('라고 답변하였지.')
print("어느 한 컴퓨터공학과 학생이 유명한 교수님을 찾아가 물었다.")
recursion(int(input()), 0)
위의 코드는 print 시에 end="" 인자를 사용하였지만, print 안에서 + 를 이용하여 문자열을 합치는 방법도 가능합니다.
- 실수 포인트 & 반례:
1. 텍스트 앞에 "____" 를 써야하지만, "----" 로 잘못 쓴 경우 틀렸습니다를 받을 수 있습니다.