개발자는 기록이 답이다

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비(Recursive_팩토리얼) 본문

알고리즘/인프런 - Java알고리즘 입문

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비(Recursive_팩토리얼)

slow-walker 2023. 9. 27. 15:30

 

 

3. 팩토리얼

 

예시 입력 1 

5

예시 출력 1

120

 

 

내가 푼 풀이

public class Main {
    int answer = 1;
    public int DFS(int n) {
        if(n == 0) return 0;
        else {
            answer *= n;
            DFS(n - 1);
        }
        return answer;
    }

    public static void main(String[] args) {
        Main T = new Main();
        System.out.println(T.DFS(5));
    }
}

 

강의 풀이

public class Answer {
    public int DFS(int n) {
        if (n == 1) return 1;
        else return n*DFS(n-1);
    }

    public static void main(String[] args) {
        Answer T = new Answer();
        System.out.println(T.DFS(5));
    }
}

 

만일 n의 범위가 100까지라면 팩토리얼로 100!이 되서 long을 넘어가게 되므로 BigInterger로 해야함