728x90

https://school.programmers.co.kr/learn/courses/30/lessons/120848

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

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

  • i! ≤ n

 

 

 

 

 

 

 

 

 

풀이)

class Solution {
    public int solution(int n) {
        int x = 1;
        int s = 1;
        int answer = 0;

        while(s<=(n)){
            s *= x++;
        }

        int aa = 0;
        int bb = 0;

        for(int i=1; i<=x-1; i++){
            aa *= i;
        }
        for(int i=1; i<x-2; i++){
            bb *=i;
        }

        if(n-aa<n-bb){
            answer = x-1;
        }else{
            answer = x-2;
        }
        
        return answer;
    }
}

 

728x90