[프로그래머스] 팩토리얼

0
post-thumbnail
post-custom-banner

❔ [문제]

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

  • i! ≤ n

  • 제한사항

    • 0 < n ≤ 3,628,800


❕ [내 풀이]

function solution(n) {
    var answer = 0;
    let fac = 1;
    let i = 1;
    const new_arr = [];
    while(fac <= n) {
        fac *= i;
        if(fac <= n)  new_arr.push(i);
        i++;
    }
    return answer = Math.max(...new_arr);
}

❕❕❕ [깔끔하다고 생각된 풀이]

function solution(n) {
    var answer = 0, count = 1, i = 1;
    while(count <= n){
        i++, answer++;
        count = count * i;
    }

    return answer;
}

배열에 1씩 더한 수를 push할 필요없이 answer변수를 1씩 증가시켜 리턴

post-custom-banner

0개의 댓글