백준 GOLD 4(작업) - #2056
-
사용 언어 : javascript
-
해결 날짜 : 2023-02-12
-
해결 방법 :
- dp를 활용해 문제 해결
- 선행 작업이 없는 경우 현재 작업의 작업 시간, 있는 경우 가장 늦게 끝나는 작업 + 현재 작업 시간으로 dp 업데이트
-
회고 :
- 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 tasks = props.slice(1).map((task) => task.split(' ').map((e) => +e)); const dp = Array.from({ length: N + 1 }, () => 0); for (let i = 0; i < N; i++) { dp[i + 1] = tasks[i][0]; tasks[i].slice(2).forEach((e) => { dp[i + 1] = Math.max(dp[i + 1], dp[e] + tasks[i][0]); }); } console.log(Math.max(...dp)); }
-
출처: 백준