๐งธ ์ํธ๋ฅผ ํด์ํ ์ ์๋ ๊ฒฝ์ฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๊ฒ์์ ํค๋งธ๋ค.
์ฝ๋
const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().trim().split('');
const dp = new Array(input.length + 1);
dp[0] = 1;
//0์ผ๋ก ์์ํ ๊ฒฝ์ฐ
if (Number(input[0]) <= 0) {
return console.log(0);
}
dp[1] = 1;
for (let i = 2; i <= input.length; i++) {
const two = Number(input[i - 2] + input[i - 1]);
const one = Number(input[i - 1]);
//์ํธ๊ฐ ์๋ชป๋ ๊ฒฝ์ฐ ๋ฏธ๋ฆฌ ์ฒ๋ฆฌ
if (one === 0 && (two > 26 || input[i - 2] === "0")) {
return console.log(0);
}
if (two <= 26 && two >= 10) {
if (one === 0) {
dp[i] = dp[i - 2];
} else {
dp[i] = (dp[i - 1] + dp[i - 2]) % 1000000;
}
} else {
dp[i] = dp[i - 1];
}
}
console.log(dp[input.length] % 1000000);