재귀적 사고 연습 ① 재귀 함수의 입력값과 출력값 정의하기 ② 문제를 쪼개고 경우의 수를 나누기 (순서와 크기로 기준을 정하기) ③ 단순한 문제부터 해결하기 (base case) → 결과가 하나 혹은 두개일 때 ④ 남아있는 복잡한 문제 해결하기 (recursive case) ⑤ 코드로 구현하기