๐ŸŒท๐ŸŒผ๋ชจ์—ฌ๋ด์š” ๊ฐœ๋ฐœ์˜์ˆฒ๐ŸŒท๐ŸŒผ

[JAVA/์ฝ”๋”ฉํ…Œ์ŠคํŠธ] ์กฐํ•ฉ์˜ ๊ฒฝ์šฐ์ˆ˜(๋ฉ”๋ชจ์ด์ œ์ด์…˜) ๋ณธ๋ฌธ

๊ฐœ๋ฐœ/์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ’€์ด JAVA

[JAVA/์ฝ”๋”ฉํ…Œ์ŠคํŠธ] ์กฐํ•ฉ์˜ ๊ฒฝ์šฐ์ˆ˜(๋ฉ”๋ชจ์ด์ œ์ด์…˜)

์š”์ผ์ด 2022. 2. 10. 01:11
๋ฐ˜์‘ํ˜•
์„ค๋ช…

๋กœ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์—ฌ๋Ÿฌ๋ถ„์€ ์ด ๊ณต์‹์„ ์“ฐ์ง€์•Š๊ณ  ๋‹ค์Œ ๊ณต์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ์žฌ๊ท€๋ฅผ ์ด์šฉํ•ด ์กฐํ•ฉ์ˆ˜๋ฅผ ๊ตฌํ•ด์ฃผ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์„ธ์š”.

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ์ž์—ฐ์ˆ˜ n(3<=n<=33)๊ณผ r(0<=r<=n)์ด ์ž…๋ ฅ๋ฉ๋‹ˆ๋‹ค.

 

์ถœ๋ ฅ

์ฒซ์งธ ์ค„์— ์กฐํ•ฉ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์‹œ ์ž…๋ ฅ1 

5 3

์˜ˆ์‹œ ์ถœ๋ ฅ1

10

์˜ˆ์‹œ ์ž…๋ ฅ2 

33 19

์˜ˆ์‹œ ์ถœ๋ ฅ2

818809200

 

 - ๋‚ด๊ฐ€ ํ‘ผ ํ’€์ด

import java.util.*;

public class Main {

    static int[][] array;

    public static int fact(int n) {

        if (n <= 1)
            return 1;
        else
            return fact(n-1) * n;

    }

    public int DFS(int n, int r){

        if(n==r){
            return 1;
        }

        if(r <= 1 || n <= 1){
            int top  = fact(n);
            int bottom = fact(n-r) * fact(r);
            array[n][r] =  top / bottom;
        }

        if(array[n][r] == 0){
            array[n][r] = DFS(n-1, r-1) + DFS(n-1, r);
        }

        return array[n][r];

    }

    public static void main(String[] args) {

        Main main = new Main();
        Scanner kb = new Scanner(System.in);

        int n = kb.nextInt();
        int r = kb.nextInt();

        array = new int[n+1][r+1];

        System.out.println(main.DFS(n, r));

    }

}

 

 
Comments