본문 바로가기
프로그래머스 문제풀어보기

[Lv.0] 팩토리얼

by dantriss 2023. 4. 5.


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

 

어렵게 짰다가 테스트 5번만 계속 실패하길래 초기화 한다음에 천천히 다시 생각해서 문제를 해결했다.

조건식에서 정수 n은 0<n<=3628800이라고 나와있다 또 입출력 예에선 3628800의 결과가 10이라고 나와있다.

즉 결과값은 1~10일 것이고 10!을 확인해보면 3628800 인 것도 알 수 있다.

그렇다면 반복문을 간단하게 만들 수 있다.

1~10까지 반복하며 각 자리 수를 곱해주는 즉 1! ~10!까지 출력하는 반복문을 작성한다.

*여기서 int factorial을 0으로 처음에 선언을 해준다면 값은 0만 출력 될테니 주의하자.

여기서 factorial이 정수 n 보다 작거나 같은 값을 찾아야하기 때문에 factorial <=n라는 조건식을 넣고

해당 조건식에 일치한 i값을 answer에 넣어주고 리턴해주면 된다.

 

class Solution {
    public int solution(int n) {
        int answer = 0;
        int factorial = 1;
        
        for(int i =1; i<=10; i++){ 
            factorial *=i;
            if(factorial <=n){
            
                answer = i;
            }
            
        }
        return answer;
    }
}

'프로그래머스 문제풀어보기' 카테고리의 다른 글

[Lv.0] 분수의 덧셈  (0) 2023.04.05
[Lv.0] 옹알이(1)  (0) 2023.04.04
[Lv.0] 다음에 올 숫자  (0) 2023.04.04
[Lv.0] 문자열 계산하기  (0) 2023.04.01
[Lv.0] 숨어있는 숫자의 덧셈 (2)  (0) 2023.03.23

댓글