본문 바로가기
인프런 스터디

[Python] 재귀함수

by KAYEON 2021. 7. 20.

## 재귀함수

- 내가 나를 호출하는 방법

- 반복문 <-> 재귀함수

 

## 문제 접근 방법

- 반복문: 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