재귀는 특히 아래와 같은 상황에서 매우 적합합니다.
for (let i = 0; i < n; i++) {
for (let j = 0; j < n; j++) {
for (let k = 0; k < n; k++) {
for (let l = 0; l < n; l++) {
for (let m = 0; m < n; m++) {
for (let n = 0; n < n; n++) {
for (let o = 0; o < n; o++) {
for (let p = 0; p < n; p++) {
// do something
someFunc(i, j, k, l, m, n, o, p);
}
}
}
}
}
}
}
}
사실 모든 재귀 함수는 재귀 호출 없이 while / for loop으로 표현이 가능합니다. 하지만 재귀를 사용 가능한 경우, 재귀를 사용한 코드가 대부분의 경우 더욱 간결하고, 일부의 경우에는 이해하기도 쉽습니다. 하노이의 탑과 조합(combination) 문제를 재귀와 그렇지 않은 경우로 비교해 보세요.
이 밖에도 재귀는 알고리즘 문제의 많은 부분을 차지합니다. 나중에 학습하게 될 자료구조와 알고리즘 스프린트에서, 그리고 기업의 입사 시험(알고리즘 테스트)에서 활용될 수 있기 때문에 기초를 확실하게 다져야 합니다.