반응형

문제

자연수 N과 정수 K가 주어졌을 때 이항 계수 (NK)를 구하는 프로그램을 작성하시오.

입력

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

출력

(NK)를 출력한다.

예제 입력 1

5 2

예제 출력 1

10

나의 풀이

파스칼의 삼각형을 생각하고 2차원 배열을 만든 뒤 점화식을 세운 뒤 문제를 풀었다. 아래 식과 그림을 첨부하였다.

IMG_F13A9FEEEF28-1


코드

import java.util.Scanner;

/**
 * 11050번 이항 계수 1
 */
public class Baeckjun11050 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int k = sc.nextInt();

        int[][] dp = new int[n+1][n+1];

        for (int i=0; i<=n; i++) {
            for (int j=0; j<=i; j++) {
                if (j==0 || i==j) dp[i][j] = 1;
                else dp[i][j] = dp[i-1][j-1] + dp[i-1][j];
            }
        }

        System.out.println(dp[n][k]);
    }
}
반응형

'Programming > Algorithm' 카테고리의 다른 글

[백준9375번] 패션왕 신해빈  (0) 2020.01.19
[백준11051번] 이항 계수 2  (0) 2020.01.19
[백준3036번] 링  (0) 2020.01.19
[백준2981번] 검문  (0) 2020.01.18
[백준2609번] 최대공약수와 최소공배수  (0) 2020.01.18

BELATED ARTICLES

more