재귀함수란 함수가 자신을 다시 호출하는 구조로 만들어진 함수이다. 재귀함수는 종료조건이 있어야 하고, 종료조건을 설정해주지 않으면 무한 반복을 하게 되며, 재귀함수로 작성이 되는 코드는 반복문으로도 작성할 수 있다.
자연수로 이루어진 리스트(배열)의 합을 구하는 알고리즘
for문 사용
function arrSum(arr) { let sum = 0; for (let i = 0; i < arr.length; i++) { sum += arr[i]; } return sum; }
재귀함수 사용
function arrSum(arr) { if(arr.length === 0) return 0 return arr[0] + arrSum(arr.slice(1)); }
재귀함수의 개념과 작동원리는 쉽게 파악하는데 비해, 실제로 코드를 작성할때 어떤 값을 리턴해야 하고 호출하는 횟수를 제어하기 위해서 어떤 변수를 사용해야 하는지를 파악하는데 어려움이 있었지만 다행히 코딩 테스트 문제들을 풀어보며 어떤 방식으로 코드를 작성해야 하는지에 대해 감을 잡을 수 있었다.