✨ 문제 ✨

✨ 정답 ✨
const { count } = require("console");
const fs = require("fs");
const { nextTick } = require("process");
const filePath = process.platform === "linux" ? "/dev/stdin" : "./예제.txt";
let input = fs.readFileSync(filePath).toString().trim();
input = input.split('\n')
const Code = input[0].split('')
let dp = new Array(Code.length + 1).fill(0)
dp[0]=1;
dp[1] = 1;
let noAnswer = false;
if (Code[0] === '0') {
noAnswer = true;
}
for (let i = 2; i <= Code.length; i++) {
if (parseInt(Code[i - 1]) === 0) {
if (parseInt(Code[i - 2]) === 0) {
noAnswer = true;
}else if (parseInt(Code[i - 2] + Code[i - 1] )>=10
&&parseInt(Code[i - 2] + Code[i - 1] )<=26) {
dp[i] = dp[i - 2];
}
} else {
if (parseInt(Code[i - 2] + Code[i - 1]) >=10
&& parseInt(Code[i - 2] + Code[i - 1]) <= 26) {
dp[i] = (dp[i - 2] + dp[i - 1]) % 1000000
} else {
dp[i] = dp[i - 1]
}
}
}
if (noAnswer === true) {
console.log(0)
} else {
console.log(dp[Code.length]%1000000)
}
🧵 참고한 정답지 🧵
💡💡 기억해야 할 점 💡💡
- dp 문제를 풀 때마다 dp[i]과 input[i]을 혼동하는 경우가 많다. 반드시 고쳐야 한다.
- 인덱스 잘 생각해야 한다.
- 문제를 어떻게 풀지 계획을 세워야 한다.