1. Direct vs Indirect Recursion
- Direct Recursion: 자기 함수에서 자기를 다시 호출
- Indirect Recursion: ****함수가 다른 함수를 호출한 다음 첫 번째 함수를 다시 호출.
2. Recursive vs Iteration
- Recursive: 코드가 직관적 but 일반적인 경우 비효율
- Iteration: 일반적인 경우 효율적 but 코드가 직관적이지 않음.
3. How Recursion is Defined
- Base case: solution이 nonrecursive한 상태인 경우
- General case: solution이 자기 자신의 smaller 버전으로 다시 재귀 불리는 케이스
4. Memoization
- 동일한 계산이 많을 때 한번 계산된 값은 저장해두고 다음에 그 값이 필요한 경우 불러와서 계산을 효율적으로 하는 방법.
- ex) Combination 재귀 함수에서 사용