i
팩토리얼 (i!)은 1부터 i까지 정수의 곱을 의미합니다. 예를들어 5! = 5 4 3 2 1 = 120 입니다. 정수 n이 주어질 때 다음 조건을 만족하는 가장 큰 정수 i를 return 하도록 solution 함수를 완성해주세요.
n
0 < n
≤ 3,628,800
n | result |
---|---|
3628800 | 10 |
7 | 3 |
입출력 예 #1
n
이 3628800이므로 최대 팩토리얼인 10을 return 합니다.입출력 예 #2
n
이 7이므로, 7 이하의 최대 팩토리얼인 3을 return 합니다.function solution(n) {
let result = 0
// 제한사항의 최대 값이 10의 팩토리얼이기 때문에 10번 반복
for(let i = 1 ; i <= 10; i++) {
// n이 i의 팩토리얼보다 크다면 진행하여 최대 i를 구함
if(n >= getFacto(i)) {
result = i
continue
} else {
break
}
}
return result
}
// 팩토리얼을 구하는 함수
function getFacto(num) {
// 재귀를 통해 n*n-1... 을 구현함
if(num > 1) return num*getFacto(num-1)
return num
}