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

2022. 12. 20. 11:32프로그래머스

반응형
문제 설명

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

  • i! ≤ n

 

제한사항
  • 0 < ≤ 3,628,800

 

입출력 예
n result
3628800 10
7 3

 

입출력 예 설명

입출력 예 #1

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

입출력 예 #2

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

 

풀이
class Solution {
    //팩토리얼(Factorial) 구하는 함수
    public int factorial(int n) {
        return (n <= 1) ? n : factorial(n - 1) * n;
    }
    public int solution(int n) {
        int answer = 0;
        //n의 제한사항 3,628,800은 10!이므로 1부터 10까지의 팩토리얼을 기준으로 최대 팩토리얼을 찾는 반복문 
        for(int i = 1; i <= 10; i++) {
            if (factorial(i) <= n) {
                answer = i;
            }
        }
        return answer; //최대 팩토리얼 return
    }
}
반응형