Computer Science/Algorithm

BOJ 11057: 오르막 수 (+중복조합 야매)

무니화니 2022. 1. 4. 23:17

하... 이 문제를 보고 참아버리지 못했다.

물론 지금 컴퓨터 공부를 하고 있지만, 수학적으로 문제를 봐버리고 나니 다른 해답으로 풀기가 싫어진다.

문제부터 보자.

BOJ 11057

이 문제를 보고 dynamic programming으로 풀까라는 생각이 1초정도 났지만,

바로 확률과 통계에서 나오는 중복조합 H가 생각났다.

딱 중복 가능한, 순서 따져야 하는.... 중복조합 아닌가!

 

이걸로 풀었다.

import math
n=int(input())
print((math.factorial(9+n)//(math.factorial(9)*math.factorial(n)))%10007)

 

 

하지만, 코더의 본분은 코딩이거늘...

dp로 마지막 자리로 index 잡고, 하나씩 늘려주면 된다!

하하 수학 1승.!