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

chorok ☘️·2025년 6월 23일

코딩테스트

목록 보기
15/54
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

입출력 예 #1
10! = 3,628,800입니다. n이 3628800이므로 최대 팩토리얼인 10을 return 합니다.

입출력 예 #2
3! = 6, 4! = 24입니다. n이 7이므로, 7 이하의 최대 팩토리얼인 3을 return 합니다.

⚡ 구현코드

class Solution {
    public int solution(int n) {
        int answer = 1;
        int i = 1;
        while(answer<=n){
            i++;
            answer *= i;
        }
        return i-1;
    }
}

⚡ 구현코드 해설

조건을 answer가 n보다 작거나 같을 때까지 반복하도록 했다.
조건이 참일 경우 i를 +1하고, +1한 i를 answer에 곱하였다.

입출력 두 번째 예시에서 i가 3일 때 answer는 6이고, 이는 n인 7보다 작으므로 조건이 참이 된다. 그래서 다시 조건문에 들어가면 i가 4가 되고 이 때는 answer가 24가 된다. 이번에는 answer가 n보다 크므로 조건문에는 들어갈 수 없고, 반환해야하는 값이 i-1인 3이 된다.

profile
백엔드 개발자 chorok's velog

0개의 댓글