소스코드
def power(a, b):
if b == 0:
return 1
if b % 2:
return (power(a, b//2) ** 2 * a) % p
else:
return (power(a, b//2) ** 2) % p
p = 1000000007
N, K = map(int, input().split())
fact = [1 for _ in range(N+1)]
for i in range(2, N+1):
fact[i] = fact[i-1] * i % p
A = fact[N]
B = (fact[N-K] * fact[K]) % p
print((A % p) * (power(B, p-2) % p) % p )
알고리즘
페르마의 소정리를 이용하여 푸는 문제였다.
페르마의 소정리는 다른 블로그에 잘 적혀있으니 그걸 보면 될 것같다.
'Coding test' 카테고리의 다른 글
[백준/1149/파이썬] RGB거리 (0) | 2023.06.06 |
---|---|
[백준/14501/파이썬] 퇴사 (0) | 2023.06.04 |
[백준/2579/파이썬] 계단오르기 (0) | 2023.06.02 |
[백준/20125/파이썬] 쿠키의 신체측정 (0) | 2023.06.01 |
[백준/14888/파이썬] 연산자 끼워넣기 (0) | 2023.05.14 |