Just Do IT!
[프로그래머스 Level 0] 120848. 팩토리얼 (JavaScript) 본문
728x90
문제 설명
i팩토리얼 (i!)은 1부터 i까지 정수의 곱을 의미합니다. 예를들어 5! = 5 * 4 * 3 * 2 * 1 = 120 입니다. 정수 n이 주어질 때 다음 조건을 만족하는 가장 큰 정수 i를 return 하도록 solution 함수를 완성해주세요.
- i! ≤ n
제한사항
- 0 < n ≤ 3,628,800
입출력 예
n | result |
3628800 | 10 |
7 | 3 |
입출력 예 설명
입출력 예 #1
- 10! = 3,628,800입니다. n이 3628800이므로 최대 팩토리얼인 10을 return 합니다.
입출력 예 #2
- 3! = 6, 4! = 24입니다. n이 7이므로, 7 이하의 최대 팩토리얼인 3을 return 합니다.
function solution(n) {
// result! <= n
// 2! 부터 계속 계산해서 n에 도달하는지 계산하기
// n은 최대 10!까지만 계산할 수 있다
let result = 0;
// 팩토리얼 함수에 i를 넣으면서 n과 같거나 작으면 result = i
for(let i = 1; i <= 10; i++) {
if (n >= getFac(i)) {
result = i
continue
}
else {
break;
}
}
return result;
}
// 팩토리얼 구하는 함수 (재귀 이용)
function getFac(num) {
if (num > 1)
return num * getFac(num-1);
return num;
}
다른 사람 풀이 (while 문 사용하기 / 굳이 팩토리얼 함수 안써도 된다)
function solution(n) {
let i = 1;
let f = 1;
while (f*i < n) f*=++i;
return i;
}
728x90
'코딩테스트 준비 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 Level 1] 159994. 카드 뭉치 (JavaScript) (1) | 2023.05.16 |
---|---|
[프로그래머스 Level 0] 120911. 문자열 정렬하기 (2) (JavaScript) (0) | 2023.01.15 |
[프로그래머스 Level 0] 120904. 숫자 찾기 (JavaScript) (0) | 2023.01.13 |
[프로그래머스 Level 0] 120895. 인덱스 바꾸기 (JavaScript) (0) | 2023.01.12 |
[프로그래머스 Level 0] 120834. 외계행성의 나이 (JavaScript) (1) | 2023.01.11 |