자기 자신을 다시 호출하는 함수
def recursive():
print('재귀함수')
recursive()
recursive()
# '재귀함수' 가 무한히 출력된다.
파이썬에서는 한계가 있어 어느 순간 에러메세지가 발생하고 종료된다.
재귀 함수를 문제 풀이에서 사용 할 때는 재귀 함수의 종료 조건을 반드시 명시해야한다.
종료 조건을 제대로 명시하지 않으면 함수가 무한히 호출 될 수 있다.
n! = 1 2 3 ''' (n-1) * n
# for문을 이용하여 반복적으로 구현한 방법
def factorial(n):
result = 1
for i in range(1,n+1):
result *= i
return result
# 재귀적으로 구현한 방법
def factorial(n):
if n <= 1:
return 1
return n * factorial(n-1)
두 개의 자연수에 대한 최대공약수(GCD)를 구하는 대표적인 알고리즘으로 유클리드 호제법이 있다
유클리드 호제법의 아이디어를 그대로 재귀 함수로 작성 할 수 있다.
EX)
GCD(192, 162)
단계 | A | B |
---|---|---|
1 | 192 | 162 |
2 | 162 | 30 |
3 | 30 | 12 |
4 | 12 | 6 |
def gcd(a,b):
if a % b == 0:
return b
else:
return gcd(b, a % b)
print(gcd(192,162))
# out = 6
today review-
요즘 알고리즘 문제를 풀고 코드를 복습해보는 학습과
정보처리기사 필기 공부를 병행하고 있다.
TIL 정리 하는 것도 놓치지 말자.