practivceAlgorithm/백준

[백준][Python] 11051 이항계수2

findTheValue 2021. 7. 28. 10:23
import sys
input = sys.stdin.readline
from math import factorial

N,K = map(int,input().split())

print((factorial(N)//(factorial(K)*factorial(N-K)))%10007)

 

사실 모듈써서 푸는게 의도는 아닐것 같은데 귀찮아서 썼다..

본의도는 파스칼의 삼각형의 구현이었을 것 같아 관련코드도 가져왔다.

n, k = map(int, input().split())
dp = [[0] * 1 for i in range(1001)]
dp[1].append(1)
for i in range(2, 1001):
    for j in range(1, i + 1):
        if j == 1:
            dp[i].append(1)
        elif j == i:
            dp[i].append(1)
        else:
            dp[i].append(dp[i - 1][j - 1] + dp[i - 1][j])
print(dp[n + 1][k + 1] % 10007)

원래 파스칼의 삼각형은 정삼각형 구조지만 dp모델은 직각삼각형 모델로 만든다.

대각 위와 왼쪽 삼각형의 값을 더하면 다음 라인 삼각형의 값이 되는 모델.