하... 이 문제를 보고 참아버리지 못했다.
물론 지금 컴퓨터 공부를 하고 있지만, 수학적으로 문제를 봐버리고 나니 다른 해답으로 풀기가 싫어진다.
문제부터 보자.
이 문제를 보고 dynamic programming으로 풀까라는 생각이 1초정도 났지만,
바로 확률과 통계에서 나오는 중복조합 H가 생각났다.
딱 중복 가능한, 순서 따져야 하는.... 중복조합 아닌가!
이걸로 풀었다.
import math
n=int(input())
print((math.factorial(9+n)//(math.factorial(9)*math.factorial(n)))%10007)
하지만, 코더의 본분은 코딩이거늘...
dp로 마지막 자리로 index 잡고, 하나씩 늘려주면 된다!
하하 수학 1승.!
'Computer Science > Algorithm' 카테고리의 다른 글
BOJ 1932: 정수 삼각형 (0) | 2022.01.06 |
---|---|
BOJ 2156: 포도주 시식 (0) | 2022.01.05 |
BOJ 11053: 가장 긴 증가하는 부분 수열 (0) | 2022.01.02 |
BOJ 11053: 가장 긴 증가하는 부분 수열 (0) | 2022.01.02 |
BOJ 11052: 카드 구매하기 (0) | 2022.01.01 |