Algorithm | Code Kata #15

Wook·2021년 12월 22일
0

Algorithm | Code Kata

목록 보기
15/21

문제

재귀를 사용하여 팩토리얼(factorial)을 구하는 함수를 구현해주세요. 팩토리얼이란 1에서부터 n까지의 정수를 모두 곱한것을 말합니다.

1! = 1
2! = 1 * 2
5! = 1 * 2 * 3 * 4 * 5

문제 접근 / 정리 / 아이디어들

재귀 함수를 통해 구현을 하면 되기 때문에 함수 내에서 재귀적으로 팩토리얼 인자를 쌓아 곱해주도록 해주면 될 것이라고 생각했다.


풀이

Method 1

const factorial = n => {
  // 종료 조건; 0일 경우 1을 return
  if (n === 0) return 1;

	// 재귀 함수를 사용하여 팩토리얼 계산. Ex. n * (n-1) * ( n-1)-1 ...
  return n * factorial(n-1);
}

Method 2

const factorial = n => {
// n의 시작값을 1로 지정(팩토리얼은 0일 필요  X)
var result = 1;

// for 문을 이용하여 n의 크기를 1씩 줄여나가면서 곱한다. (단, 0은 제외)
for (var i = n; i >= 1; i--) {
	// 값들을 모두 곱해 result에 저장
	result *= i;
}
return result;

느낀 점

코드 카타를 풀면서 거의 처음으로 재귀 함수를 이용한 문제였다. 비교적 코드를 간결하게 집약시킬 수 있었고, 재귀에 대한 부분을 검토하며 공부할 수 있었으며, 논리적 과정을 이해할 수 있었다.

profile
지속적으로 성장하고 발전하는 진취적인 태도를 가진 개발자의 삶을 추구합니다.

0개의 댓글