https://www.acmicpc.net/problem/1149
ํ์ฐธ์ ๊ณ ๋ฏผํ๋ ๋ฌธ์ . ์ง๋ฌธ ๊ฒ์ํ์ ์ฌ๋ ค์ง ๊ธ๋ค์ ๋ณด๊ณ ํํธ๋ฅผ ์ป์๋ค.๊ฑฐ์ ๋ต์ ํ์ธํ ์์ค์ด์ง๋ง..
๊ฐ ๋จ๊ณ๋ง๋ค RGB ์์์ผ๋ก ์ง์ ์์น ํ๋ ๋น์ฉ์ด ๊ฐ๊ฐ ์ฃผ์ด์ง๊ณ , ๊ฐ ๋น์ฉ ๊ฐ๊ฐ์ ๋ํด์ ์ธ๋ฑ์ค ๋ฒํธ๊ฐ ๋ค๋ฅธ ๋ค์ ๋จ๊ณ ๋ฐฐ์ด์ ํญ๋ชฉ๋ค ์ค ๊ฐ์ฅ ์์ ๊ฐ์ ๋ํ๋ค.
์ฒ์์๋ ์ ๊ณผ์ ์ switch
๋ฌธ์ ํตํด ์ผ์ผํ ์์ฑํด์ผ ํ๋.. ํ๋ค.
๊ทผ๋ฐ { 0: [1, 2], 1: [0, 2], 2: [0, 1] }
์ด๋ ๊ฒ ๊ฐ์ฒด๋ก ์ ํํ ๋ฐฐ์ด์ ์ธ๋ฑ์ค๋ฅผ ๋ฏธ๋ฆฌ ์ ํด์ฃผ๋ ๋ฐฉ๋ฒ์ด ์์๋ค. ์๊ฐํด๋ณด๋ฉด ์ฐธ ๊ฐ๋จํ๋ฐ ์ ๋ ์ด๋ฐ ๊ฑธ ์๊ฐํด๋ด์ง ๋ชปํ๋์ง.. ๋ ํ๋ ๋ฐฐ์๊ฐ๋ค.
์๋ฌดํผ ์ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ฉฐ ์ฒซ๋ฒ์งธ RGB๊ฐ ๊ฐ๊ฐ์์ ์ถ๋ฐํ์ ๊ฒฝ์ฐ ์ป์ ์ ์๋ ์ต์๊ฐ์ ๊ตฌํ๊ณ , ๋ค์ ๋จ๊ณ๋ก ๋์ด๊ฐ ๋๋ง๋ค dp
๊ฐ์ ๊ฐฑ์ ํด์ค๋ค. ๋ชจ๋ ๊ณผ์ ์ด ๋๋ ๋ค, dp
๋ฐฐ์ด์ ์ต์๊ฐ์ ๋ฐํํ๋ค.
const input = require('fs').readFileSync('input.txt').toString().split('\n');
const n = Number(input.shift());
const nx = { 0: [1, 2], 1: [0, 2], 2: [0, 1] };
let dp = [0, 0, 0];
for (let i = 0; i < n; i++) {
const arr = input.shift().split(' ').map(Number);
for (let j = 0; j < 3; j++) {
arr[j] += Math.min(dp[nx[j][0]], dp[nx[j][1]]);
}
dp = arr;
}
console.log(Math.min(...hold));