Recursive Functions

mangjell·2022년 4월 24일
0

재귀함수란?

함수가 직접 또는 간접적으로 자신을 호출하는 프로세스

장점: 재귀 함수를 이용하여 복잡한 문제들도 간단하게 해결할 수 있다.

주의점: 종료지점을 제대로 생각하지 않고 구현을 하면 스택오버플로우가 발생할 수 있다.

필수 원칙

  1. Base Case를 명확히 작성한다.
  2. Base Case의 조건에 부합하지 않을 경우, Recursive Case를 명확히 작성한다.
  3. 원하는 결과물까지 최대한 접근하고, 필요한 경우에 return한다. 일반적으로 2개의 return 문이 존재한다.
    (Base Case의 return문 하나, Recursive Case의 return문 하나)

팩토리얼 예제)

function factorial1(number) { 

  if (number <= 2) return number;
  
  return factorial1(number-1) * number;
}

피보나치 예제)

function fibonacci1(n){ 

  if (n < 2) return n;
  
  return fibonacci1(n-1) + fibonacci1(n-2);
}

위와같이 반복문을 사용하지 않고 재귀함수를 사용하여 간단하게 문제들을 풀 수 있다!!

profile
프론트엔드 개발자

0개의 댓글