Notice
Recent Posts
Recent Comments
Link
관리 메뉴

윤일무이

[JavaScript] 프로그래머스 코딩테스트 입문 : 팩토리얼 본문

⚙️ 코딩테스트

[JavaScript] 프로그래머스 코딩테스트 입문 : 팩토리얼

썸머몽 2023. 3. 28. 02:00
728x90

문제 및 제한사항

 

i팩토리얼 (i!) 1부터 i까지 정수의 곱을 의미합니다. 예를들어 5! = 5 * 4 * 3 * 2 * 1 = 120 입니다. 정수 n 주어질 다음 조건을 만족하는 가장 정수 i return 하도록 solution 함수를 완성해주세요. (i! ≤ n)

 

**제한사항**

0 < n ≤ 3,628,800

 

풀이 방법

 

예를 들어 n = 7일 경우, 3!(1*2*3) <= 7 이므로 결과값은 3이 된다.

for문으로 계속 곱해주었을 때, 그 곱한 값이 n과 같으면 마지막으로 곱한 값을 출력하고, 크다면 하나를 빼준다.

어떻게 풀어야 할지 고민했는데 쉽게 생각하면 되는 문제였다.

 

코드

function solution(n) {
    let fac = 1;
    for (let i = 1; i <= n; i++) {
        fac *= i;
        if (fac === n) {
            return i;
        } if (fac > n) {
            return i-1;
        }
    }
}
728x90