[JS] 팩토리얼 programmers

0

코딩테스트

목록 보기
78/80
post-thumbnail

🎀 문제

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

function solution(n) {
    var answer = 0;
    return answer;
}

solution(3628800);
solution(7);

🎀 내 답변

function solution(n) {
    let answer = 1;

    for(let i = 1; i <= n; i++){
        answer *= i;
        
        if(answer === n){
            return i;
        }
        
        if(answer > n){
            return i - 1;
        }
    }
}

solution(3628800);
solution(7);
  1. answer1부터 설정하고 i가 증가함에 따라 i를 계속해서 곱해준다.
  2. 그렇게 증가한 수가 파라미터로 들어온 값과 동일하다면, 해당 i를 반환한다.
  3. 파라미터로 들어온 값보다 크다면? 해당 i 이전의 숫자를 반환해야하니 i - 1을 한 값을 반환한다.
profile
일단 해. 그리고 잘 되면 잘 된 거, 잘 못되면 그냥 해본 거!

0개의 댓글