재귀함수란 함수가 자기 자신을 호출하는 형태의 함수다.
대체적으로 for문을 반복적으로 많이 사용하는 경우를 대체해서 사용하거나 효율적인 알고리즘을 사용하기 위해 작성한다.
예제를 통해 배워보자.
1부터 입력한 변수까지 더하는 함수
함수 sumTo(num)가 재귀함수의 형태다. 자세히보면 함수 안에 자신을 호출하는 함수가 있고
인자를 반복해서 호출하는 것을 볼 수 있다.
function sumTo(num) {
// TODO: 여기에 코드를 작성합니다.
// 별도의 최적화 기법(memoization)은 금지됩니다.
// 숫자 입력 후 1부터 num까지 합을 리턴
// return sumTo(num) + sum(num - 1)
if (num === 0){
return 0
}
return num + sumTo(num-1)
}
인자 : num >= 0 (양수)
출력 : number 타입으로 리턴해야함
주의사항
for, while을 사용하지 않기
재귀함수로 풀기
n * (n+1) / 2 같은 공식 사용 금지
입출력 예시
let output = sumTo(10);
console.log(output); // --> 55
실행 과정은 다음과 같다.
입력 >> sumTo(10)
10 + sumTo(9)
10 + 9 + sumTo(8)
10 + 9 + 8 + sumTo(7)
10 + 9 + 8 + 7 + sumTo(6)
10 + 9 + 8 + 7 + 6 + sumTo(5)
10 + 9 + 8 + 7 + 6 + 5 + sumTo(4)
10 + 9 + 8 + 7 + 6 + 5 + 4 + sumTo(3)
10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + sumTo(2)
10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + sumTo(1)
Javascript 고차 함수문제(5) - getOnlyAllowedToDrink (0) | 2022.12.10 |
---|---|
Javascript 고차 함수문제(4) -getLengthOfElements (0) | 2022.12.10 |
Javascript 고차 함수문제(3) -getElementsLessThan100AtProperty (0) | 2022.12.10 |
Javascript 고차 함수문제(2) - getIndex (0) | 2022.12.10 |
Javascript 고차 함수문제(1) - pipe (0) | 2022.12.09 |