[백준 1149] 다이나믹 프로그래밍 - RGB거리

김민지·2023년 3월 20일
0

냅다 시작 백준

목록 보기
32/118

✨ 문제 ✨

✨ 정답 ✨

const { json } = require("express/lib/response");
const fs = require("fs");
const filePath = process.platform === "linux" ? "/dev/stdin" : "./예제.txt";
let input = fs.readFileSync(filePath).toString().trim().split('\n');

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


const solve = (n, rgb) => {
    dp = [...new Array(n+1)].map(v => new Array(3).fill(0));
    dp[1] = rgb[0];
    for (let i=2; i<=n; i++) {
      dp[i][0] = Math.min(dp[i-1][1], dp[i-1][2]) + rgb[i-1][0];
      dp[i][1] = Math.min(dp[i-1][0], dp[i-1][2]) + rgb[i-1][1];
      dp[i][2] = Math.min(dp[i-1][0], dp[i-1][1]) + rgb[i-1][2];
    }
    console.log(Math.min(...dp[n]));
  };
  
  const [n, ...rgb] = require('fs').readFileSync('./예제.txt').toString().trim().split('\n');
  solve(+n, rgb.map(cost => cost.split(' ').map(v => +v)));


  // 문자형 데이터 앞에 +를 붙이면 number 형태가 된다.
  // https://ssocoit.tistory.com/234
profile
이건 대체 어떻게 만든 거지?

0개의 댓글