DHistory

[Baekjoon] DP - 11051 이항 계수 2 본문

Computer Science/Algorithm

[Baekjoon] DP - 11051 이항 계수 2

ddu0422 2023. 9. 25. 08:12

문제

 

11051번: 이항 계수 2

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

www.acmicpc.net

 

풀이

"""
       1
      1 1
     1 2 1
    1 3 3 1
   1 4 6 4 1
  1 5 10 5 1
 1 6 15 15 6 1
1 7 21 30 21 7 1
"""
n, k = map(int, input().split())
MOD = 10007


def solution(n, k):
    k = min(n - k, k)
    d = [[0] * (n + 1) for _ in range(n + 1)]
    d[0][0] = d[1][0] = d[1][1] = 1

    for i in range(2, n + 1):
        for j in range(n + 1):
            d[i][j] = (d[i - 1][j] + d[i - 1][j - 1]) % MOD

    return d[n][k]


print(solution(n, k))

 

채점 결과