백준 SILVER 1(RGB거리)
-
사용 언어 : javascript
-
해결 날짜 : 2023-02-03
-
해결 방법 :
- 프로그래머스 땅따먹기와 유사한 문제로 dp를 활용해 문제 해결
- 각 집의 비용들이 저장된 costs 별 R, G, B마다 현재 인덱스를 제외한 나머지 인덱스의 최소값을 더함
- 반복문 종료 후 costs의 마지막 인덱스에 모든 집을 다 칠했을 때의 최종값이 저장되므로 마지막 인덱스에서의 min을 구함
-
회고 :
- x
-
코드
const fs = require('fs'); const filePath = process.platform === 'linux' ? '/dev/stdin' : '../input.txt'; const input = fs.readFileSync(filePath).toString().trim(); solution(input); function solution(props) { props = props.split('\n'); const N = +props[0]; const costs = props.slice(1).map((prop) => prop.split(' ').map((e) => +e)); for (let i = 1; i < costs.length; i++) { costs[i][0] += Math.min(costs[i - 1][1], costs[i - 1][2]); costs[i][1] += Math.min(costs[i - 1][0], costs[i - 1][2]); costs[i][2] += Math.min(costs[i - 1][0], costs[i - 1][1]); } console.log(Math.min(...costs[N - 1])); }
-
출처: 백준