programmers

[Programmers Level 0] 팩토리얼 Javascript

냠냠맨 2022. 11. 25. 13:54

문제정보

 

 

처음엔 팩토리얼값을 구하는 문제인줄 알고

팩토리얼 값을 구하는 코드를 짰는데 통과가 안되어서 뭐지..? 했네요

매개변수로 주어지는 정수 n보다 같거나 작은 팩토리얼값을 구하는 문제였어요

 


 

예시

 

n	result
3628800	10
7	3

나의풀이

function solution(n) {
    let counter = 1
    let answer = 0
    for(i=1 ; i<=10 ; i++) {
        counter = counter * i
        if(n >= counter) {
            answer = i
        }
    }
    return answer
}

간단하게 구현했습니다.

10!보다 큰 수는 주어지지 않으니까 i를 10까지 반복하고

팩토리얼을 n과 비교해주면서 가장 큰 팩토리얼을 찾고 리턴해줬습니다.


다른사람의 풀이

function solution(n) {
    let i = 1;
    let f = 1;
    while (f*i < n) f*=++i;
    return i;
}

while문으로 구현하면 더 깔끔하고

더 큰 수까지도 계산할 수 있겠네요

반응형