재귀함수란?
- 어떤 함수가 실행과정에서 자기 스스로를 호출하여 반복하는 것
- 동일한 구조의 작은 규모의 문제를 해결해나가면서 주어진 문제를 해결하는 방식
- 문제를 쪼개고, 더는 쪼갤 수 없을 때, 가장 작은 단위의 문제부터 해결책을 사용해 해결해 나간다.
- 모든 재귀 함수는 반복문으로 표현 될 수 있지만, 재귀를 쓰는게 훨씬 깔끔하다.
재귀적 사고
- 입력값과 출력값 정의하기
- 문제를 쪼개어 경우의 수 나누기
- 문제를 쪼개었을 때, 구분된 문제를 푸는 방식이나 순서가 크기에 상관없어야 한다.
- 단순한 문제 해결하기
- 문제를 쪼갠 후 가장 쉬운 문제부터 해결한다.
- 이를
재귀의 기초(base case)
라고 한다.
- 남아 있는 복잡한 문제 해결하기
재귀함수의 기본적인 형태
function recursive(input1, input2, ...) {
if (문제를 더 이상 쪼갤 수 없을 경우) {
return 단순한 문제의 해답;
}
return 더 작은 문제로 새롭게 정의된 문제
}
+
- 개발에서 중요한 비중을 차지하는 개념이므로 반드시 숙달하자....
- 뜻 자체는 이해가가지만, 정말 자주 사용해보고 풀어보는 방식으로 손에 익히고, 결과를 예상해 낼 수 있어야 내 것이 될 것 같다.
- 함수가 자기 자신 내부에서 반복한다는 알겠는데, 딱 거기까지라 미치겠음 ^^^^^^