파이썬/기본

[파이썬] 재귀 호출

caramel-bottle 2023. 9. 14.

재귀 호출

재귀 호출은 함수가 자기 자신을 다시 호출하는 기법이다.

def factorial(num):
    if num > 1:
        return num * factorial(num - 1)
    else:
        return num

for num in range(5):
    print(factorial(num))

팩토리얼은 1부터 자기 자신까지의 수를 각각 곱한 결과이다. 반환값에 함수 자기 자신을 호출하는데 매개변수값을 하나씩 줄여가며 호출한다. if 조건에 따라 계속 매개변수를 줄여가며 호출을 하고 조건이 False가 되면 반환을 시작한다. 각각 반환되는 값을 연산하고 또 반환하며 num의 팩토리얼 연산 결과를 반환한다.

 

def palindrome(string):
    if len(string) <= 1:
        return True
    if string[0] == string[-1]:
        return palindrome(string[1:-1])
    else:
        return False
palindrome("madam")

* 팰린드롬(palindrome)은 뒤집어도 같은 말이 되는 단어나 구절을 말한다. 예시로는 'madam', 'level', 'Was it a rat I saw?', '소주 만병만 주소', '여보 안경 안 보여' 등이 있다. 

 

재귀 함수, 재귀 호출은 복잡한 문제를 간단하게 풀어주기도 하지만 재귀 호출이 많아지는 경우 메모리 사용량이 증가하고 스택 오버플로가 생길 수 있다. 또한 코드 작성자 외의 사용자가 코드를 이해하는 데에 시간이 걸리는 등 단점도 있다.

 

 

'파이썬 > 기본' 카테고리의 다른 글

[파이썬] OS모듈  (0) 2023.09.15
[파이썬] 객체지향과 클래스  (0) 2023.09.14
[파이썬] 콜백함수 & 람다함수  (0) 2023.09.14
[파이썬] 변수의 범위  (0) 2023.09.12
[파이썬] 함수와 메모리  (0) 2023.09.11

댓글