재귀함수의 입력값, 출력값 정의
문제를 쪼개고 경우의 수를 나누기
단순한 문제 해결하기
(이 때, 재귀의 기초. 즉, 재귀의 탈출조건을 구성한다.)
복잡한 문제 해결하기
아래의 예시로 재귀를 살표보면
//예를 들어 arr = [1,2,3]이라 가정
public int sum(int[] arr){
if(arr.length == 0) return 0;
int[] newArr = Arrays.copyOfRange(arr,1,arr.length);
return arr[0] + sum(newArr) // 1 + 2 + ......
}
위에서 sum(newArr)을 통해 자기 자신을 계속 호출하고 있다.
후에 재귀의 탈출조건을 통해 종료된다.