팩토리얼

Wook·2024년 9월 11일

🧩코딩테스트

목록 보기
31/46
post-thumbnail

문제

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

  • i! ≤ n

조건

  • 0 < n ≤ 3,628,800

예시

nresult
362880010
73

풀이

  • value = 1부터 1씩 늘려가며 팩토리얼 값을 구한 후, n과 비교한다.
  • n을 처음으로 넘었을 때의 값에서 1을 뺀 후 반환하면 된다.
  • value에 1씩 더해갈 때 당시의 value 값을 계속 곱해서 담아놓고,
    현재의 value를 곱하면 -> 현재 value의 팩토리얼을 구할 수 있다.

코드

class Solution {
    public int solution(int n) {
        int value = 1;
        int factorial = 1;
        
        while(n >= factorial){
            value++;
            factorial *= value;
        }
        
        return value - 1;
    }
}
profile
Keep going

0개의 댓글