[백준] 1904. 01타일 (자바스크립트/javascript/js/동적계획법/다이나믹프로그래밍/동적프로그래밍)
2021. 7. 1. 17:12ㆍFront-end/알고리즘
728x90
반응형
문제를 풀기 위한 아이디어
다이나믹 프로그래밍 유형은 점화식을 세우는 것이 가장 중요하다.
이 문제의 점화식은 타일의 개수가 N개일 때 만들 수 있는 N자리수 이진수의 모든 개수를 T(n)이라 하면,
T(n) = T(n-2) + T(n-1)이다.
다이나믹 프로그래밍을 푸는 방법에는 Top-down 방식과 Bottom-up 방식이 있는데, 처음에 이문제를 Top-down 방식으로 푸니까 stack이 계속 초과되었다고 나와서 Bottom-up 방식으로 반복문으로 풀었다.
내가 작성한 코드 (자바스크립트)
function solution(N) {
const memo = new Array();
memo[1] = 1;
memo[2] = 2;
for (let i = 3; i <= N; i++) {
memo[i] = (memo[i - 2] + memo[i - 1]) % 15746;
}
console.log(memo[N]);
}
const readline = require("readline");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
let input;
rl.on("line", function (line) {
input = line;
solution(Number(input));
rl.close();
}).on("close", function () {
process.exit();
});
728x90
반응형
'Front-end > 알고리즘' 카테고리의 다른 글
[백준] 9461. 파도반 수열 (자바스크립트/javascript/js/node.js/동적계획법/다이나믹 프로그래밍/동적 프로그래밍) (0) | 2021.07.01 |
---|---|
[알고리즘] 동적계획법 (동적프로그래밍, 다이나믹 프로그래밍) (자바스크립트/javascript/js) (0) | 2021.07.01 |
[백준] 1003. 피보나치 함수 (자바스크립트/javascript/js/동적계획법/다이나믹프로그래밍/동적프로그래밍) (0) | 2021.07.01 |
[백준] 2960. 에라토스테네스의 체 (자바스크립트/javascript/js) (0) | 2021.07.01 |
[프로그래머스] 디스크 컨트롤러 (자바스크립트/js/javascript/우선순위큐/힙) (0) | 2021.06.30 |