다이나믹 프로그래밍 문제
n = 1 일때부터 경우의 수를 구해서 규칙을 찾아보면
n 의 경우의 수 = (n - 1 의 경우의 수) + (n - 2 의 경우의 수) * 2 의 규칙을 갖는 것을 알 수 있다
나머지는 매 경우마다 구해주고
배열에 bottom up 방식으로 채워나가 완성해주자
https://www.acmicpc.net/problem/11727
let input = [];
const readline = require("readline").createInterface({
input: process.stdin,
output: process.stdout,
});
readline.on("line", (line) => {
input.push(line);
});
readline.on("close", () => {
solution(input);
process.exit();
});
const solution = (inp) => {
let n = Number(inp[0]);
let arr = Array(1004).fill(0);
arr[1] = 1;
arr[2] = 3;
for (let i = 3; i <= 1000; i++) {
arr[i] = (arr[i - 1] + arr[i - 2] * 2) % 10007;
}
console.log(arr[n]);
};
'개발 노트 > 백준, 프로그래머스 풀이' 카테고리의 다른 글
[백준 4659/javascript] 비밀번호 발음하기 (0) | 2022.09.30 |
---|---|
[백준 14606/javascript] 피자 (0) | 2022.09.29 |
[백준 3022/javascript] PRASE (0) | 2022.09.27 |
[백준 9095/javascript] 1, 2, 3 더하기 (0) | 2022.09.27 |
[백준 1966/javascript] 프린터 큐 (0) | 2022.09.26 |
댓글