알고리즘/백준

BOJ) 이항 계수 2

Zin0_0 2020. 8. 8. 15:49
반응형

이항 계수 2

 

11051번: 이항 계수 2

첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 1,000, 0 ≤ \(K\) ≤ \(N\))

www.acmicpc.net

풀이

 

nCr 을 구하는 문제다.

nCr = n-1Cr-1 + n-1Cr 이라는 공식을 저번에 이어서, 다시 한번 머리에 남기기 위해 포스팅 한다.

r이 0일 때와, n일 때 1로 설정하고, 나머지 r에 대해서 위의 공식을 적용하면 된다.

 

 

코드

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws IOException {    // 이항계수
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int n = Integer.parseInt(st.nextToken());
        int k = Integer.parseInt(st.nextToken());
        br.close();
        solution(n,k);
    }

    private static void solution(int n, int k) {
        int[][] dp = new int[n+1][n+1];
        final int mod = 10007;

        for(int i=1; i<=n; i++) {   // nCr = n-1Cr + n-1Cr-1
            dp[i][0] =1;
            dp[i][i] =1;
            for(int j=1; j<i; j++) {
                dp[i][j] = (dp[i-1][j-1] + dp[i-1][j])%mod;
            }
        }
        System.out.println(dp[n][k]);
    }
}
반응형