IT/자료구조 & 알고리즘

[알고리즘] 재귀 용법(Recursive Call) (Python)

ziasu 2021. 8. 4. 20:15
반응형

1. 재귀 용법(Recursive Call)

  • 함수 안에서 동일한 함수를 호출하 형태
  • Python에서는 재귀함수 깊이가 1000회 이하여야 함(Python 자체적으로 고정된 stack공간을 잡아놨기 때문)

 

2. 일반적인 형태

  • 임의의 입력이 주어진다.
  • 임의의 조건이 주어진다.
  • 입력이 임의의 조건을 충족시킬 때까지 재귀호출이 된다.

 

3. 코드 구현

팩토리얼 연산은 조금 식상한 면이 있어서 좀 신박한 예제들을 재귀 용법을 통해 구현해봤다.

 

3.1 회문(palindrome) 판별기

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

 

 

3.2 정수 n이 입력으로 주어졌을 때, n을 1,2,3의 합으로 나타낼 수 있는 방법의 가짓수

  • f(n) = f(n-1) + f(n-2) + f(n-3)이란 패턴 도출한 후
def func(n):
    if n==1:
        return 1
    elif n==2:
        return 2
    elif n==3:
        return 4
    elif n>=4:
        return func(n-1) + func(n-2) + func(n-3)

 

 

 

반응형