알고리즘/문제 풀이

11050번: 이항 계수 1

Themion 2022. 1. 4. 10:34

https://www.acmicpc.net/problem/11050

 

11050번: 이항 계수 1

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

www.acmicpc.net

파스칼의 삼각형 법칙에 따라 이항계수 nCk는 k가 0 혹은 n일 때 1, 그 외의 경우에는 (n - 1)C(k - 1) + (n - 1)Ck이다.

#include <cstdio>

#define MAX_N 10

int main() {
    // N, K: 이항계수 상수, ans[n][k]: 이항계수 nCk
    int N, K, ans[MAX_N + 1][MAX_N + 1] = {{ 0, }};

    // 문제의 조건을 입력받은 뒤 파스칼의 삼각형을 이용해 이항 계수를 계산
    scanf("%d %d", &N, &K);
    for (int n = 1; n <= N; n++) {
        ans[n][0] = ans[n][n] = 1;
        for (int k = 1; k < n; k++)
            ans[n][k] = ans[n - 1][k] + ans[n - 1][k - 1];
    }

    // 이항계수를 출력
    printf("%d\n", ans[N][K]);

    return 0;
}

'알고리즘 > 문제 풀이' 카테고리의 다른 글

11052번: 카드 구매하기  (0) 2022.01.04
11051번: 이항 계수 2  (0) 2022.01.04
11047번: 동전 0  (0) 2022.01.04
11022번: A+B - 8  (0) 2022.01.03
11021번: A+B - 7  (0) 2022.01.03