## 재귀함수
- 내가 나를 호출하는 방법
- 반복문 <-> 재귀함수
## 문제 접근 방법
- 반복문: Bottom-up(작은 문제에서 출발)
- 재귀: Top-down(큰 문제에서 출발) => 꼭 종료조건이 있어야 함
1. 반복문
# 1부터 100까지의 합
## 1부터 100까지의 합
x = 0
for i in range(1, 101):
x += i
print(x)
>> 5050
1부터 100까지의 i 값이 변수 x에 누적됨
# 팩토리얼: 5! 구하기
x = 1
n = 5
for i in ragne(1, n+1):
x *= i
print(x)
2. 재귀함수
# 1부터 N까지의 합
def f(n):
if n <= 1:
return 1
else:
return n + f(n-1)
n = 100
pirnt(n)
>> 5050
# 5! 예시
# 재귀함수로 while 반복문과 똑같이 만들기
while True:
if input('##') == 'exit':
break
if input('##') == hi:
print('hello world')
else:
continue
def console():
if input('##') == 'exit':
return None
if input('##') == 'hi':
print('hello world')
console()
console()
# 2진수 구하기
def 이진수구하기(입력값):
if 입력값 < 2:
return str(입력값)
else:
return str(이진수구하기(입력값//2) + str(입력값%2)
print(이진수구하기(11))
>> 1011
2보다 작으면 입력값 그대로 출력, 그렇지 않으면 함수 호출
# 문자열 뒤집기
def 문자열뒤집기(문자열):
if 문자열 == '':
return None
else:
return str(문자열뒤집기(문자열[1:])) + str(문자열[0])
print(문자열뒤집기('kayeon'))
>> Nonenoeyak
'인프런 스터디' 카테고리의 다른 글
[Python] 문제3 - 섬으로 건너가라! (0) | 2021.07.19 |
---|---|
[Python] 문제1 - 암호를 해독해라! (0) | 2021.07.06 |