자기 자신을 호출하는 함수를 말한다
문제를 비슷한 구조로 작게 나눌 수 있는 경우
(마트료시카처럼)
중첩된 반복문이 많거나 중첩 횟수를 예측하기 어려운 경우
반복문보다 더 간결하게 코드를 작성하고 싶을 때
보통 다음과 같은 구조로 되어 있다.
function recursive(input) {
//base case (탈출 조건!)
if(문제를 더 나누지 못하는 조건) {
return 단순한 문제의 해답;
}
//recursive case
return 재귀 함수를 이용하여 더 작게 나눈 문제;
}