코딩테스트

팩토리얼 자바 JAVA 프로그래머스 코딩테스트

daeyun대윤 2023. 11. 2. 07:02

출처 : https://school.programmers.co.kr/learn/challenges

 

코딩테스트 연습 | 프로그래머스 스쿨

개발자 취업의 필수 관문 코딩테스트를 철저하게 연습하고 대비할 수 있는 문제를 총망라! 프로그래머스에서 선발한 문제로 유형을 파악하고 실력을 업그레이드해 보세요!

school.programmers.co.kr

 

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

 

재귀 호출문제! 팩토리얼..!! 피하고 싶었지만 이젠 정면 돌파다..

 

재귀는 2가지 특징이 있다고 한다.

탈출조건(멈춰야하는 조건), 자기자신 호출(재귀)

 

 

class Solution {
    public int solution(int n) {
        int answer = 1;
        int temp = 1;
        
        for( int i=1; i<12; i++){
            temp *= i;        
            if(temp == n){
                answer = i;
            }else if(temp > n){
                answer = i-1;
                break;
            }
        }
  
        return answer;
    }
}

제한사항에 n이 0보다 크고, 3,628,800 보다 작거나 같다고 되어 있으므로, 10이하여야 했다. i가 1부터 시작하므로 반복 조건은 12로 잡아줌.

 

 

 

 

 

 

참고한 블로그 : https://dhdh-study.tistory.com/100

 

[Programmers] 팩토리얼(자바)

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

dhdh-study.tistory.com

 

728x90
300x250