본문 바로가기

프로그래머스(Java)/Level 0

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

728x90

코드 힌트

  1. 팩토리얼 개념 이해하기:
    • 팩토리얼은 n!로 표현되며, n부터 1까지의 모든 정수를 곱한 값을 의미합니다. 예를 들어, 5!는 5 × 4 × 3 × 2 × 1입니다. 이 문제에서는 주어진 숫자 n 이하의 가장 큰 팩토리얼 값을 찾아야 합니다.
  2. 팩토리얼 값 계산하기:
    • 팩토리얼을 계산할 때, 초기값을 설정합니다. 팩토리얼 값을 계속 곱해가면서 현재 계산된 팩토리얼 값을 저장합니다.
  3. 계산 반복하기:
    • n이 현재 계산된 팩토리얼 값보다 클 동안 반복합니다. 매 반복마다 팩토리얼의 계수를 증가시키고, 현재 계산된 팩토리얼 값에 계수를 곱하여 업데이트합니다.
  4. 결과 확인하기:
    • 반복이 끝난 후, n과 현재 계산된 팩토리얼 값이 같은지 확인합니다. 만약 같다면 현재 계수가 정답입니다.
    • 만약 n이 현재 계산된 팩토리얼 값보다 작다면, 계수는 n을 초과한 팩토리얼 값의 계수를 가지므로, 이전 계수를 반환하여 n 이하의 가장 큰 팩토리얼 계수를 찾습니다.
  5. 기타 사항:
    • 이 방법은 반복적인 곱셈을 사용하여 팩토리얼 값을 계산하고 n과 비교하여 최대 값을 찾는 방식으로, 효율적으로 팩토리얼 계수를 찾을 수 있습니다.

 


정답은 더보기 클릭

더보기
class Solution {
    public int solution(int n) {
        // 결과를 저장할 변수 초기화
        int result = 1;
        
        // 곱셈 연산을 위한 변수 초기화
        int num = 1;
        
        // n이 num보다 클 동안 반복
        while (n > num) {
            // 결과 변수 값을 증가시킴
            result++;
            
            // num에 결과값을 곱하여 업데이트
            num *= result;
        }
        
        // n이 num과 같다면 현재 결과값을 반환
        if (n == num) {
            return result;
        }
        
        // n이 num보다 작다면 마지막으로 더 작은 결과값을 반환
        return result - 1;
    }
}
728x90