재귀 : 문제를 동일한 구조의 더 작은 문제로 나눌 수 있고, 이 작은 문제를 해결함으로써 전체 문제를 해결하는 방법
- 재귀적으로 사고하는 법
잘게 쪼개어 사고하는 법
재귀적 사고
함수 자신의 재귀적 호출
탈출 조건
- 재귀 함수의 활용(트리 구조)
트리 구조에 재귀 함수를 활용
JSON 구조에 재귀 함수를 활용
DOM 구조에 재귀 함수를 활용
재귀를 사용 하는 경우
- 주어진 문제를 비슷한 구조의 더 작은 문제로 나눌 수 있는 경우
- 중첩된 반복문이 많거나 반복문의 중첩횟수(number of loops)를 예측하기 어려운 경우
재귀적 사고 연습하기
- 재귀 함수의 입력값과 출력값 정의하기
- 문제를 쪼개고 경우의 수를 나누기 : 입력값이나 문제의 순서와 크기 고려
- 단순한 문제 해결하기 : 재귀의 기초(base case), 재귀 탈출 조건을 구성
- 복잡한 문제 해결
- 코드 구현하기