재귀함수를 정확히 이해 할 수 있는 문제이다.
재귀함수의 구성큰 크게 3부분으로 나눌 수 있다
1. 탈출을 위한 조건문
특정조건을 설정하여 return을 해주지 않으면 재귀함수에서 영영 빠져나올수 없다
탈출조건문은 한번 시행되며, 마지막 작업을 입력해야 한다.
2. 함수 시작~ 재귀함수호출문 전
재귀함수가 반복될때 순서를 잘 파악하며 코드를 작성해야한다.
+1 +2 +3
3. 재귀함수 호출 이후 ~ 함수의 끝
2번은 +1 +2 +3 순으로 작동된다면 3번은 +3+2+1 역순으로 함수가 작동된다.
*정답을 맞았지만, 제출하자 틀렸다고 나왔다. 이런 출력형식이 복잡한 문제는 ""나 마침표 등을 조심하자!
num = int(input())
print("어느 한 컴퓨터공학과 학생이 유명한 교수님을 찾아가 물었다.")
def recur(num,idx):
if num == idx:
for i in range(idx):
print("____", end="")
print("\"재귀함수가 뭔가요?\"")
for i in range(idx):
print("____", end="")
print("\"재귀함수는 자기 자신을 호출하는 함수라네\"")
for i in range(idx):
print("____", end="")
print("라고 답변하였지.")
return
for i in range(idx):
print("____",end="")
print("\"재귀함수가 뭔가요?\"")
for i in range(idx):
print("____",end="")
print("\"잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을 통달한 선인이 있었어.")
for i in range(idx):
print("____",end="")
print("마을 사람들은 모두 그 선인에게 수많은 질문을 했고, 모두 지혜롭게 대답해 주었지.")
for i in range(idx):
print("____",end="")
print("그의 답은 대부분 옳았다고 하네. 그런데 어느 날, 그 선인에게 한 선비가 찾아와서 물었어.\"")
recur(num,idx+1)
for i in range(idx):
print("____",end="")
print("라고 답변하였지.")
recur(num,0)
'Data Science > 알고리즘 공부' 카테고리의 다른 글
[백준][파이썬] 2164번 카드2 (0) | 2020.03.12 |
---|---|
[백준][파이썬] 4949번 균형잡힌 세상 (0) | 2020.03.12 |
[백준][파이썬] 1874번: 스택 수열 (0) | 2020.03.11 |
[백준][파이썬] 1593 문자 해독 (0) | 2020.03.10 |
[백준][파이썬] #10870 피보나치수 5 (재귀함수 활용) (0) | 2020.03.10 |
댓글