728x90
반응형
목차
https://www.acmicpc.net/problem/4811
문제

문제 구현 방향
dp의 하향식으로 푸는 문제로 상태가 전체 알약인 경우와 반쪽 알약인 경우로 나누어
이차원 배열로 풀면 되는 문제이다.
코드 구현
javascript
const input = require("fs")
.readFileSync("./dev/stdin", "utf-8")
.trim()
.split("\n");
let dp = Array.from({ length: 31 }, () => Array(31).fill(0));
//반쪽 전체 두가지 상태
let idx = 0;
while (idx < input.length - 1) {
let N = +input[idx];
eating(0, N);
idx++;
console.log(dp[0][N]);
}
function eating(half, entire) {
if (half === 0 && entire === 0) {
//기저 조건
return 1;
}
//중복 계산을 피하기 위한 조건
if (dp[half][entire]) return dp[half][entire];
if (entire > 0) {
dp[half][entire] += eating(half + 1, entire - 1);
}
if (half > 0) {
dp[half][entire] += eating(half - 1, entire);
}
return dp[half][entire];
}
반응형
'백준 문제풀이 > Nodejs' 카테고리의 다른 글
[백준][구현] 1041 주사위 NodeJs 구현 (0) | 2025.03.31 |
---|---|
[백준][DP] 2240 자두나무 NodeJs 구현 (0) | 2025.02.11 |
[백준][dp][dfs] 1520 NodeJs 구현 (0) | 2025.02.07 |
[백준][bfs] 1600 말이 되고픈 원숭이 NodeJs 구현 (0) | 2025.02.06 |
[백준][백트래킹] 10974 모든 순열 NodeJs 구현 (0) | 2025.02.04 |