[Algorithm] Recursion


Recursion 재귀


  • 정의 단계에서 자신을 재참조 하는 함수
  • 하나의 함수에서 자신을 다시 호출하여 작업을 수행하는 방식
  • 재귀 호출이나 되부름 이라고도 함

재귀 함수 특징

  • 무한 루프 방지를 위해 함수가 끝날 때 까지 함수 호출 이후의 명령문이 수행되지 않는다는 사실과 종료 조건이 꼭 포함되어야 한다는 부분을 인지하고 작성
  • 파이썬에서 재귀 함수는 한번에 호출되는 정도가 1000회 이하가 되어야 함

대표적인 재귀 함수 예시

def factorial(n):
    if n <= 1:
        return n
    else:
        return n * factorial(n-1)
    
팩토리얼을 재귀함수로 구현


def fibonacci(n):
    if n < 2:
        return n
    else:
        return fibonacci(n-1) + fibonacci(n-2)
피보나치 수열의 인자를 재귀함수로 구현


def gcd(m, n):
    if m < n:
        m, n = n, m
    if m % n == 0:
        return n
    else:
        return gcd(n, m%n)
유클리드 호제법을 재귀함수로 구현

유클리드 호제법
두 자연수 m, n에 대하여 (m > n) m을 n으로 나눈 나머지를 l이라 했을 때, m과 n의 최대공약수는 n과 l의 최대공약수와 같다는 성질



참고

잔재미코딩
신찬수 교수님 유튜브






© 2021. by hminkim