이 문제는 이항계수를 찾는 공식을 사용해야만 한다.
import sys
def solution(x, y):
if y == 1:
return x % key
elif y % 2:
return solution(x ** 2 % key, y // 2) * x % key
else:
return solution(x ** 2 % key, y // 2)
N, K = map(int, sys.stdin.readline().split())
K = min(K, N-K)
key = 1000000007
answer = 1
temp = 1
for i in range(K):
answer *= N-i
answer %= key
temp *= K-i
temp %= key
print(solution(temp, key-2) * answer % key)
# solution 함수 정의 없이 아래의 식만으로도 가능
# print(pow(temp, key-2, key) * answer % key)
'파이썬 코테 준비' 카테고리의 다른 글
[백준 10217] KCM Travel - Python(파이썬) (0) | 2021.03.27 |
---|---|
[백준 11404] 플로이드 - Python(파이썬) (0) | 2021.03.27 |
[백준 17472] 다리 만들기 2 - Python(파이썬) (0) | 2021.03.21 |
[백준 2887] 행성 터널 - Python(파이썬) (0) | 2021.03.21 |
[백준 1774] 우주신과의 교감 - Python(파이썬) (0) | 2021.03.21 |
댓글