일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- node
- node.js
- GitHub
- react native 타입스크립트
- 리액트 네이티브 맥
- react native accessible
- react
- react native typescript navigation
- 싸이월드
- react-native
- unity stencil buffer
- html
- 스탠실 버퍼 사용
- CSS
- 벡터와 리스트의 차이
- c++ 정보은닉
- C++
- javascript
- 스탠실 버퍼 시작
- react native typescript navigate
- react native typescript
- c++ using
- react native mac
- stencil buffer
- react native ios 기기 연결
- 스탠실 버퍼 튜토리얼
- 리액트 네이티브 설치 오류
- Expo
- react native
- cyworld
Archives
- Today
- Total
혀니의 이거저거 뿌시기
17478 재귀함수가 뭔가요? 본문
728x90
17478번: 재귀함수가 뭔가요? (acmicpc.net)
17478번: 재귀함수가 뭔가요?
평소에 질문을 잘 받아주기로 유명한 중앙대학교의 JH 교수님은 학생들로부터 재귀함수가 무엇인지에 대하여 많은 질문을 받아왔다. 매번 질문을 잘 받아주셨던 JH 교수님이지만 그는 중앙대
www.acmicpc.net
N = int(input())
print("어느 한 컴퓨터공학과 학생이 유명한 교수님을 찾아가 물었다.")
def jaegui(n):
if (n == N):
print('_' * 4 * n + "\"재귀함수가 뭔가요?\"")
print('_' * 4 * n + "\"재귀함수는 자기 자신을 호출하는 함수라네\"")
print('_' * 4 * n + "라고 답변하였지.")
return
else:
print('_' * 4 * n + "\"재귀함수가 뭔가요?\"")
print('_' * 4 * n + "\"잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을 통달한 선인이 있었어.")
print('_' * 4 * n + "마을 사람들은 모두 그 선인에게 수많은 질문을 했고, 모두 지혜롭게 대답해 주었지.")
print('_' * 4 * n + "그의 답은 대부분 옳았다고 하네. 그런데 어느 날, 그 선인에게 한 선비가 찾아와서 물었어.\"")
jaegui(n + 1)
print('_' * 4 * n + "라고 답변하였지.")
jaegui(0)
이 문제를 풀기까지...
나에게 <재귀>라는 개념이 너무 어려웠다.
그래서 여러 문제들을 방황하다가 이 문제를 찾게 되었다.
이리저리 옮겨다 보면 원하는 결과가 나올 수 있고, 그것이 문장으로 드러나 다른 재귀문제들보다 풀기 쉬웠던 것 같다.
재귀함수는 보통 함수 안에서 받은 N을 break문으로 설정하고, 시작할 때는 0같은 값부터 시작하는 것이 특징인 듯 하다.
그리고 꼭 jaegui(n + 1)처럼 재귀함수를 break문까지 도달할 수 있게 하는 문장이 필요한데,
그것이 어느곳에 위치하느냐에 따라 결과가 완전히 바뀌는것 같다.
만일 jaegui(n+1)이 else의 첫 줄로 간다면 n == N에 해당하는 결과가 처음에 출력된다.
또한, "라고 답변하였지"가 jaegui(N+1)아래에 위치하기 때문에 반복문의 나중에 해당하는 곳에 쫘르륵 연속 출력된다.
또한 여기서 ___ <-이것도 신경써줘야 하는데, 이를 위해서는 파이썬에서 print문이 어떤식으로 배치되는지 알 필요가 있겠다.
*와 +를 잘 조합해서 프린트 내에서 수식을 이용해 쉽게 출력할 수 있다.
728x90
'알고리즘 공부(C++)' 카테고리의 다른 글
1929 소수 구하기 (0) | 2022.08.16 |
---|---|
9012 괄호 (0) | 2022.08.16 |
1026 보물 (0) | 2022.08.13 |
1476 날짜 계산 (0) | 2022.08.12 |
1436 영화감독 숌 (0) | 2022.08.11 |