팩토리얼

문제

 


나의 생각

 

팩토리얼 함수를 이용해서 값이 매개변수보다 작거나 같을때는 for문의 i 값을 answer에 담는 방식으로 접근. 

 


나의 답안

 

public static int solution(int n) {
    int answer = 0;

    for (int i = 1; i <= 10; i++){
        if (fact(i) <= n){
            answer = i;
        } else {
            break;
        }
    }

    return answer;
}

public static int fact(int n) {
    if (n <= 1){
        return 1;
    } else {
        return fact(n-1)*n;
    }
}

다른 답안

 

팩토리얼 함수를 사용하는 형식은 다양하다. while문으로 처리하는 방식이 좀 더 깔끔해 보이니 다음에는 해당 방식을 사용토록 해야겠다.

 

class Solution {
    public int solution(int n) {
        int fac = 1;
        int i = 0;

        while(true){
            if(fac <= n){
                fac *= i + 1;
                i++;
            }else break;
        }

        return i-1;
    }
}

'Programmers 문제풀이 > Lv.0' 카테고리의 다른 글

가까운 수  (0) 2023.03.01
2차원으로 만들기  (0) 2023.03.01
A로 B 만들기  (0) 2023.02.28
모스부호 (1)  (0) 2023.02.28
중복된 문자 제거  (0) 2023.02.28