728x90
반응형
문제: https://www.acmicpc.net/problem/17478
나는 재귀함수 구현을 헷갈려하는 편인데,
이 문제를 통해 제대로 알길 원한다.
재귀보다 후에 작성한 코드는
재귀가 종료된 후 실행함을 고려하면서 코드를 작성했다.
.join(문자열)은 문자열 사이에 특정 문자를 삽입할 수 있는 함수이다.
이때, 문자열 맨 앞에도 특정 문자를 삽입해야 하기 때문에 문자열에 ""를 추가했다.
def recursive(cnt, n):
if cnt == n:
string = "____" * cnt
text1= [
"",
"\"재귀함수가 뭔가요?\"\n",
"\"재귀함수는 자기 자신을 호출하는 함수라네\"\n",
"라고 답변하였지."
]
print(string.join(text1))
return 1
string = "____" * cnt
text = [
"",
"\"재귀함수가 뭔가요?\"\n",
"\"잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을 통달한 선인이 있었어.\n",
"마을 사람들은 모두 그 선인에게 수많은 질문을 했고, 모두 지혜롭게 대답해 주었지.\n",
"그의 답은 대부분 옳았다고 하네. 그런데 어느 날, 그 선인에게 한 선비가 찾아와서 물었어.\""
]
print(string.join(text))
recursive(cnt+1, n)
print( "____" * cnt + "라고 답변하였지.") # recursive가 종료된 다음 실행
n = int(input())
print("어느 한 컴퓨터공학과 학생이 유명한 교수님을 찾아가 물었다.")
recursive(0, n)
728x90
'자료구조 및 알고리즘 > 백준' 카테고리의 다른 글
[python] 1244. 스위치 켜고 끄기 (1) | 2024.05.29 |
---|---|
[python] 2960. 에라토스테네스의 체 (0) | 2024.05.28 |
[python] 11726. 2*n 타일링 (0) | 2023.07.29 |
[python] 9095. 1, 2, 3 더하기 (0) | 2023.07.29 |
[python] 2748. 피보나치 수 2 (0) | 2023.07.28 |