[백준] - 1149 RGB거리 (Javascript)

밀루·2023년 11월 14일
0

BOJ

목록 보기
39/43

문제 링크

풀이과정

dp를 이용해 풀었다.

dp라는 배열을 두고 dp[1]부터 for문을 돌리면서 이전 dp 배열에서 해당하는 색 외의 색깔 중 작은 값을 더하는 것을 마지막 dp 요소까지 반복했다.

코드

let fs = require('fs');

const [n, ...arr] = fs.readFileSync('/dev/stdin').toString().split('\n');
//const [n, ...arr] = fs.readFileSync(__dirname+'/ex2.txt').toString().split('\n');

const N = +n;
let dp = arr.map(v => v.split(' ').map(Number));

for (let i=1; i<N; i++) {
    dp[i][0] += Math.min(dp[i-1][1], dp[i-1][2]);
    dp[i][1] += Math.min(dp[i-1][0], dp[i-1][2]);
    dp[i][2] += Math.min(dp[i-1][1], dp[i-1][0]);
}

console.log(Math.min(...dp[N-1]));
profile
이밀루의 도전

0개의 댓글