https://www.acmicpc.net/problem/11057
import sys
input = sys.stdin.readline
n = int(input())
a = 10
temp1 = 1
temp2 = 1
for i in range(n, 0, -1):
temp1 = temp1 * a
temp2 = temp2*i
a += 1
print((temp1//temp2) % 10007)
계산을 해보니 규칙이 있어서 이렇게 풀었더니 답은 맞았다(!?)
정석 풀이는 아니지만, 조합을 이용해서도 가능하다.
길이가 n이라면 10+(10+1)+(10+2)+...+(10+k-1)/k!을 해서 풀어도 맞긴하더라...^_^
n = int(input())
num = [1]*10
for i in range(n-1):
for j in range(1, 10):
num[j] += num[j-1]
print(sum(num)%10007)
사실 여기서 중요한 규칙은 현재 숫자보다 작은 값들의 합이다.