팩토리얼 코드 예시를 보며 Optimizable 에 대해 알아본다.
다음은 일반적인 팩토리얼 코드의 예시이다.
const factorial = function(n) {
let result = 1;
while(n > 1) {
reult *= n;
n--;
}
retrun result;
}
다음은 재귀를 이용한 팩토리얼 코드이다.
const factorial = function(n) {
if (n < 2) {
return 1;
}
return n * factorial(n-1);
}
다음은 Optimizable를 사용한 팩토리얼 코드이다.
const factorial = function(n, accum = 1) {
if (n < 2) {
return accum;
}
return factorial(n - 1, n * accum);
}
Optimizable 을 이용하면 스택에 메모리가 누적해서 쌓이지 않고
항상 일정한 메모리만을 사용하여 계산하므로 최적화에 좋다.