본문 바로가기
코딩테스트 연습/프로그래머스 Lv.0

프로그래머스 코딩테스트 lv.0 - 팩토리얼 (Java / 자바)

by 트레비봄 2023. 8. 8.
728x90

문제 설명
입출력 예시

class Solution {
    public int solution(int n) {
        int answer = 0;
        int num = 1;
        int k = 1;
//      변수 k 는 i 값을 나타내는 변수.        
        
        while(true) { // 무한루프 시작.
//      i 팩토리얼 값을 계산, 그 값을 n 과 비교하여
//      조건을 만족할 때까지 계속 반복.            
            num *= k; // num * k 곱해 i 팩토리얼 값을 계산.
            if (num > n) {
                answer = k;
                break;
            }
            k++;
        }
        return answer - 1; 
//      i 팩토리얼 값이 n을 초과하는 가장 큰 정수 i 를 구하는 것이므로
//      1을 뺀 값을 반환하면 되는 구조.
    }
}

* 팩토리얼 이라는 문제다.

* 난이도가 있는 문제였다.

* 팩토리얼에 대한 개념은 알고 있었는데 이걸 코드로 풀어 쓰는것이 생각보다 어려웠던 점이다.

* 풀다가 머리가 안돌아가서 지인 분의 코드를 바탕으로 새로이 학습했다.

 

728x90