https://www.acmicpc.net/problem/2410
2410번: 2의 멱수의 합
첫째 줄에 경우의 수를 출력한다. 답이 커질 수 있으므로 1,000,000,000으로 나눈 나머지를 출력한다.
www.acmicpc.net
📌 작성한 코드
// 2410
const fs = require("fs");
const filePath = process.platform === "linux" ? "/dev/stdin" : "Beakjoon/Gold/test.txt";
let input = fs.readFileSync(filePath).toString().trim();
const N = Number(input);
const dp = Array(N + 1).fill(0);
dp[1] = 1;
for (let i = 2; i <= N; i++) {
if (i % 2 === 0) {
dp[i] = (dp[i - 1] + dp[i / 2]) % 1_000_000_000;
} else {
dp[i] = dp[i - 1];
}
}
console.log(dp[N]);
📌 설명
- i가 홀수인 경우 : dp[i]는 dp[i-1]에서 1을 더하는 경우의 수 밖에 없으므로 dp[i] = dp[i-1]
- i가 짝수인 경우 : dp[i-1]에다가 1을 더하는 경우의 수와 dp[i/2]에 2를 곱하는 경우의 수가 존재하므로 dp[i] = dp[i-1] + dp[i/2]

✅ 성공


'알고리즘 > 백준' 카테고리의 다른 글
| [JavaScript/BFS] 백준 골드 4 : 14226 - 이모티콘 (0) | 2024.04.09 |
|---|---|
| [JavaScript/DP] 백준 골드 5 : 2195 - 문자열 복사 (0) | 2024.03.28 |
| [JavaScript/DP] 백준 골드 4 : 14002 - 가장 긴 증가하는 부분 수열 4 (1) | 2024.03.26 |
| [JavaScript/구현] 백준 골드 3 : 16236 - 아기 상어 (0) | 2024.03.20 |
| [JavaScript/DP] 백준 골드 5 : 2666 - 벽장문의 이동 (2) | 2024.03.19 |