문제📖
![](https://velog.velcdn.com/images%2Fcosmos%2Fpost%2F65ae18d1-7b5d-42b4-98c9-d3a19e382b49%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-05-31%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%201.17.15.png)
풀이🙏
- 첫째 줄에 N과 K가 주어진다.
- 자연수 N과 정수 K가 주어졌을 때 이항 계수를 10,007로 나눈 나머지를 구하는 프로그램을 작성하시오.
코드💻
import sys
def choose(cache, times, left):
if times == 0:
return left == 0
if cache[times][left] != -1:
return cache[times][left]
cache[times][left] = choose(cache, times-1, left) + choose(cache, times-1, left-1)
return cache[times][left]
def bino_coef(n, k):
if k > n:
return 0
cache = [[-1 for _ in range(n+1)] for _ in range(n+1)]
return choose(cache, n, n-k)
N, K = map(int, sys.stdin.readline().split())
print(bino_coef(N, K) % 10007)
결과😎
![](https://velog.velcdn.com/images%2Fcosmos%2Fpost%2Fd7e9e90c-0ecd-4118-b1ce-0b42da388ea5%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-05-31%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%202.13.06.png)
출처 && 깃허브📝
https://www.acmicpc.net/problem/11051
github