
import sys a, b = map(int, sys.stdin.readline().split()) N = 1 K = 1 for i in range(b): N *= a-i K *= b-i print(int(N/K)%10007)
처음에는 이렇게 풀었더니 틀린 답이 나왔다. 이유는 곰곰히 생각해보니, 문제에서 주어졌듯이 N
, K
값이 매우 커질 수 있는데, 그렇게 된다면 한번에 K로 나눌 때 정확하지 않은 값이 나올 수 있을 수 있다고 생각했기 때문이다. 따라서, 천천히 한 숫자씩 나누어주면 될 듯 했다:
정답으로 제출한 풀이
import sys a, b = map(int, sys.stdin.readline().split()) N = 1 K = 1 for i in range(b): N *= a-i for i in range(b): N = N//(b-i) print(N%10007)
이렇게 하나씩 나누어주는 방식으로 진행을 하고 마지막에 10007의 나머지 값을 구하는 방식으로 진행했다.