kakasoo

[node.js] 타일 채우기 ( 백준 2133번 ) 본문

프로그래밍/알고리즘 풀이

[node.js] 타일 채우기 ( 백준 2133번 )

카카수(kakasoo) 2021. 3. 31. 20:10
반응형
const readline = require("readline");

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout,
});

rl.on("line", (line) => {
    main(Number(line));
    rl.close();
}).on("close", () => {
    process.exit();
});

/**
 *
 * @param {number} line
 */
const main = (line) => {
    const DP = new Array(line + 1).fill(0);
    DP[2] = 3;

    for (let i = 4; i <= line; i += 2) {
        DP[i] = DP[i - 2] * DP[2] + 2;
        for (let j = 4; j < i; j += 2) {
            DP[i] += DP[i - j] * 2;
        }
    }
    console.log(DP[line]);
};

오늘 첫 문제 풀이다. 자바스크립트로 문제를 풀다 보니, 메모리 초과가 너무 많이 나온다.
숫자 1개가 8바이트니까 배열의 크기부터가 다른 언어의 2배고, temp 같이 배열을 복제만 해도 또 2배고...
백준에서는 메모리 초과가 너무 잘 나오는 것 같다.

반응형