๐ŸŽฒ๋ฐฑ์ค€ 1932๋ฒˆ ์ •์ˆ˜ ์‚ผ๊ฐํ˜•

Jeongeunยท2023๋…„ 3์›” 23์ผ
0

๋ฐฑ์ค€

๋ชฉ๋ก ๋ณด๊ธฐ
34/187

๋ฐฑ์ค€ 1932๋ฒˆ

์ฝ”๋“œ

๐Ÿงธ ๋“œ๋””์–ด ๋‚ด ํž˜์œผ๋กœ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ƒˆ๋‹ค
๐Ÿ’Š dp 2์ฐจ์›๋ฐฐ์—ด์„ ์ƒ์„ฑํ• ๋•Œ fill์„ ์‚ฌ์šฉํ•ด์ฃผ์—ˆ๋Š”๋ฐ ์—ฌ๊ธฐ์„œ 1์ฐจ ํ—ค๋งธ๋‹ค. ๋นˆ ๋ฐฐ์—ด์ด ๋“ค์–ด๊ฐˆ ๋•Œ ๊ฐ™์€ ์ฃผ์†Œ๊ฐ’์„ ๋„์–ด ๋ชจ๋“  ํ–‰์— ๊ฐ™์€ ๊ฐ’์ด ๋“ค์–ด๊ฐ”๋‹ค. fill์‚ฌ์šฉ์‹œ ์ฃผ์˜ํ•ด์•ผ๊ฒ ๋‹ค.
๐Ÿ’Š ๋‘๋ฒˆ์งธ๋กœ N์ด 1์ผ๋•Œ๋ฅผ ์ƒ๊ฐํ•˜์ง€์•Š์•„ dp[1]์ผ๋•Œ๋ฅผ ๋ฐ˜๋ณต๋ฌธ ๋ฐ–์—์„œ ๊ฐ’์„ ๋„ฃ์–ด ํ—ค๋งธ๋‹ค. ์ž…๋ ฅ๊ฐ’์˜ ๋ฒ”์œ„๋ฅผ ์ƒ๊ฐํ•˜์ž.

const fs = require('fs'); 
let input = fs.readFileSync('/dev/stdin').toString().trim().split('\n');

const N = Number(input.shift());

input = input.map((item) => item.split(" ").map(Number));

let dp = Array.from(new Array(N), () => []);

dp[0][0] = input[0][0];

for (let i = 1; i < N; i++) {
  for (let j = 0; j < input[i].length; j++) {
    if (j === 0) {
      dp[i][j] = dp[i - 1][j] + input[i][j];
    } else if (j === input[i].length - 1) {
      dp[i][j] = dp[i - 1][j - 1] + input[i][j];
    } else {
      dp[i][j] = Math.max(
        dp[i - 1][j - 1] + input[i][j],
        dp[i - 1][j] + input[i][j]
      );
    }
  }
}

console.log(Math.max(...dp[N - 1]));

0๊ฐœ์˜ ๋Œ“๊ธ€