๋ฌธ์ ๋งํฌ
https://www.acmicpc.net/problem/1149
ํ์ด
์ฒ์์๋ ๊ฐ์ฅ ์์ ์๋ฅผ ๋ํ๋ ๋ฐฉ์์ผ๋ก ํ์ฌ ์ต์๊ฐ์ ๊ตฌํ๋ ค๊ณ ์๊ฐํ๋๋ฐ ์๋์ ๊ฐ์ ์ผ์ด์ค๋ฅผ ์๊ฐํด๋ณด๋ ๊ทธ๋ ๊ฒ ์ ๊ทผํ๋ฉด ์๋ ๊ฒ ๊ฐ๋ค๋ ์๊ฐ์ด ๋ค์๋ค.
3
1 2 3
4 5 6
100 100 1
200 200 1
๊ฒฐ๊ตญ ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ํ์ํ๊ธฐ ์ํด์ ์๋์ ๊ฐ์ด ์ฝ๋๋ฅผ ์์ฑํด์ผ ํ๋ค.
let fs = require("fs");
let input = fs.readFileSync("/dev/stdin").toString().trim().split("\n");
let dp = Array.from({ length: input.length - 1 }, () => {
return Array(3).fill(0);
});
let map = [];
for (let i = 1; i <= input.length - 1; ++i) {
let arr = input[i].split(" ").map((n) => Number(n));
map.push(arr);
}
for (let i = 0; i <= map.length - 1; ++i) {
if (i === 0) {
dp[0][0] = map[0][0];
dp[0][1] = map[0][1];
dp[0][2] = map[0][2];
} else {
dp[i][0] = map[i][0] + Math.min(dp[i - 1][1], dp[i - 1][2]);
dp[i][1] = map[i][1] + Math.min(dp[i - 1][0], dp[i - 1][2]);
dp[i][2] = map[i][2] + Math.min(dp[i - 1][0], dp[i - 1][1]);
}
}
let min = Math.min(...dp.pop());
console.log(min);
'๐Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค[nodejs] > 9465๋ฒ ์คํฐ์ปค (1) | 2024.11.13 |
---|---|
๋ฐฑ์ค[node.js] > 1181๋ฒ ๋จ์ด ์ ๋ ฌ (0) | 2024.11.12 |
๋ฐฑ์ค[node.js] > 1141๋ฒ ์ ๋์ฌ (0) | 2024.11.10 |
๋ฐฑ์ค[JS] > 1105๋ฒ ํ (0) | 2024.11.09 |
๋ฐฑ์ค[JS] > 1063๋ฒ ํน (0) | 2024.11.08 |