[백준 1932] 다이나믹 프로그래밍 - 정수 삼각형

김민지·2023년 3월 26일
0

냅다 시작 백준

목록 보기
34/118

✨ 문제 ✨

✨ 정답 ✨

const fs = require("fs");
const filePath = process.platform === "linux" ? "/dev/stdin" : "./예제.txt";
let input = fs.readFileSync(filePath).toString().trim().split("\n");

let n = parseInt(input[0])
input.shift();
input = input.map(el => el.split(' ').map(el2 => parseInt(el2.trim())))


let answer = Array.from(new Array(n), () => []);

answer[0] = [input[0][0]];

for (let i = 1; i < n; i++) {
    for (let k = 0; k < input[i].length; k++) {
        if (k === 0) {
            answer[i][k] = answer[i - 1][k] + input[i][k];
        } else if (k === input[i].length - 1) {
            answer[i][k] = answer[i - 1][k - 1] + input[i][k];
        } else {
            answer[i][k] = Math.max(
                answer[i - 1][k - 1] + input[i][k],
                answer[i - 1][k] + input[i][k]
            );
        }
    }
}
console.log(Math.max(...answer[n - 1]))
profile
이건 대체 어떻게 만든 거지?

0개의 댓글