๐ฅ Algorithm/Baekjoon
[๋ฐฑ์ค 1932๋ฒ] ์ ์ ์ผ๊ฐํ - ์๋ฐ์คํฌ๋ฆฝํธ(nodejs)
Lennon
2022. 3. 11. 21:02
728x90
๋ฐ์ํ
https://www.acmicpc.net/problem/1932
const fs = require('fs');
let [n, ...input] = fs.readFileSync('dev/stdin').toString().trim().split('\n');
input = input.map((v) => v.split(' ').map(Number));
const dp = [input[0]];
for (let i = 1; i < input.length; i++) {
let arr = [];
for (let j = 0; j < input[i].length; j++) {
let value;
if (j === 0) {
value = input[i][0] + dp[i - 1][0];
} else if (j === input[i].length - 1) {
value = input[i][j] + dp[i - 1][dp[i - 1].length - 1];
} else {
value = Math.max(input[i][j] + dp[i - 1][j - 1], input[i][j] + dp[i - 1][j]);
}
arr.push(value);
}
dp[i] = arr;
}
console.log(Math.max(...dp[dp.length - 1]));
dp๋ฌธ์ ์ง๋ง ํ ๋ฌธ์ ์ ๋ค๋ฅด๊ฒ ํ ์นธ์ฉ ๋์ด๋ ์๋ก ๊ธธ์ด๊ฐ 1๊ฐ์ฉ ์ ์ ์ฆ๊ฐํ๋ค!
์ด ์ฒ๋ฆฌ๋ฅผ ํด์ค์ผ ํ๋ค.
๋งจ ์ผ์ชฝ์ ๊ฐ์ ๋ฌด์กฐ๊ฑด ์์ 0๋ฒ์งธ ์ธ๋ฑ์ค๋ง ๋ํ ์ ์์ผ๋ฉฐ,
๋งจ ์ค๋ฅธ์ชฝ ๊ฐ์ ์์ ๋ง์ง๋ง ์ธ๋ฑ์ค๋ง ๋ํ ์ ์๋ค.
์ค๊ฐ๊ฐ๋ค์ ๋ณธ์ธ์ ์ธ๋ฑ์ค๋ณด๋ค 1์ด ์๊ฑฐ๋, ๋ณธ์ธ์ ์ธ๋ฑ์ค๋ง ๋ํ ์ ์๋ค.
ex) ๋ํ ์ ์๋ ์ธ๋ฑ์ค๋ง ์์ฑํ ๊ฒ
๊ทธ๋ฌ๋ฏ๋ก ์ ๋ ๊ฐ ์ฒ๋ฆฌ๋ฅผ ํด์ฃผ๊ณ ์ค๊ฐ๊ฐ๋ค์ ๋ํ ๊ฐ ์ค์ ์ต๋๊ฐ๋ง ์ ์ ์ ์ฅํด ๊ฐ๋ฉด ๋๋ค.
๊ฒฐ๊ณผ์ ์ผ๋ก ํ ์นธ์ฉ ๋์ด๊ฐ์๋ก ์ต๋๊ฐ์ผ๋ก ์ด๊ธฐํํด ๋๊น์ง ์ฒ๋ฆฌํ ํ ๋ง์ง๋ง ๋ฐฐ์ด์ ์ต๋๊ฐ์ return ํด์ฃผ๋ฉด ๋๋ค.
728x90
๋ฐ์ํ