


욱제는 15라는 수를 굉장히 싫어한다. 그래서 0으로 시작하지 않고 1과 5로만 구성된 N자리 양의 정수 중에서, 15의 배수가 몇 개인지 궁금해졌다.
참가자 여러분도 궁금하지요?
안 궁금함? 15ㄱ
N이 주어진다. (1 <= N <= 1,515)
문제의 답을 1,000,000,007로 나눈 나머지를 출력한다.
1515
939178250
var fs = require('fs');
let N = Number(fs.readFileSync(0, 'utf-8').toString().trim());
let dp = Array.from({ length: N + 1 }, () => Array(15).fill(0));
dp[0][0] = 1;
for (let i = 1; i <= N; i++) {
for (let j = 0; j < 15; j++) {
if (dp[i - 1][j] > 0) {
dp[i][(j * 10 + 1) % 15] += dp[i - 1][j];
dp[i][(j * 10 + 1) % 15] %= 1000000007;
dp[i][(j * 10 + 5) % 15] += dp[i - 1][j];
dp[i][(j * 10 + 5) % 15] %= 1000000007;
}
}
}
console.log(dp[N][0]);
롤을 안 해서 문제를 안 풀고 있었는데 막상 문제를 보니 롤과 관련이 전혀 없어서 쉽게 이해할 수 있었지만... 문제는 생각보다 쉽게 풀리지는 않았다. DP랑 나머지를 이용해서 풀이한다는 게 신기하고 기억해둬야 할 것 같아서 기록하게 되었다.