재귀 함수란 재귀라는 말 뜻에서 유추 가능 한 것 처럼 자기자신을 호출 하는 함수라고 한다.
재귀 함수의 장점은
- 불필요하게 여러 개의 반복은 사용하지 않는다.
반복문 처럼 조건이 성립되어서 return
- 변수를 여러개 사용 할 필요가 없다.
재귀 함수의 단점으로는
항상 아무때나 재귀 함수로 표현이 가능하냐? 그건 아니다.
재귀 함수를 사용하기 위한 조건으로는
- 문제의 크기를 작은 단위로 쪼갤 수 있어야 하며,
- 재귀 호출이 탈줄 시점이 존재해야 한다.
재귀함수에 관한 문제를 위에 방법처럼 무조건 Head와 Tail로 나누어서 풀라고 생각 했는데,
무조건 이런 방식으로 풀수 있는 것도 아닐 뿐더러
재귀 함수는 맨 처음 적혀 있는 것처럼 '자기 자신을 호출하는 함수'이기 때문에
자기 자신을 호출하는 코드만 있으면 된다.