어떤 문제를 해결할 때, 동일한 구조의 더 작은 문제를 해결함으로써 주어진 문제를 해결하는 방법을 재귀(recursion)라고 한다.
모든 재귀 함수는 반복문(while 문 또는 for 문)으로 표현할 수 있습니다.
그러나 재귀를 적용할 수 있는 대부분의 경우에는, 재귀를 적용한 코드가 더욱
간결하고 이해하기 쉽습니다.
1. 재귀 함수의 입력값과 출력값 정의
- 가장 먼저 해야 할 일은 문제를 가장 단순하게 정의하는 것
2. 문제를 쪼개고 경우의 수를 나누기
- 문제를 쪼갤 기준을 정하고, 기준에 따라 문제를 더 큰 경우와 작은 경우로 구분
- 중요한 관점은 입력값이나 문제의 순서와 크기
3. 단순한 문제 해결하기
- 문제를 여러 경우로 구분한 다음에는 가장 해결하기 쉬운 문제부터 해결
- 이는 재귀 함수를 구현할 때 재귀의 탈출 조건을 구성한다.
4. 복잡한 문제 해결하기
5. 코드 구현하기
팩토리얼 구하기
function fac(n){
if(n<=1) return 1
return n * fac(n-1)
}