Recursion
Recursion
Recursion (재귀 함수)
- 정의 단계에서 자신을 재참조하는 함수
- 매 호출마다 입력값(혹은 상태)이 변해야 하며, 그렇지 않은 경우 stack overflow 발생
- 입력값에 따라 base case와 recursive case로 동작하는 방식이 달라짐
- Base case에서는 함수를 탈출
- Recursive case에서는 자신을 입력값을 바꿔서 다시 호출
- 반복문을 사용해서 풀 수 있는 문제는 재귀로도 풀리고, 그 역도 성립
- 반복문보다 훨씬 직관적이고 쉬운 코드를 구현 가능하다는 장점이 존재
- 재귀를 사용하면 호출 스택이 쌓여서 메모리 오버헤드 발생 가능
- Tail recursion이라는 방법을 통해 호출 스택을 쌓지 않을 수 있음