반응형
문제
https://www.acmicpc.net/problem/14501
14501번: 퇴사
첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다.
www.acmicpc.net
풀이
const fs = require("fs");
const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt";
let [num, ...arr] = fs.readFileSync(filePath).toString().trim().split("\n");
const n = +num;
const schedule = arr.map((row) => row.split(" ").map(Number));
let maxVal = Number.MIN_SAFE_INTEGER;
function DFS(date, pSum) {
// 퇴사일이면
if (date === n) {
maxVal = Math.max(maxVal, pSum);
return;
}
// 퇴사일 이전이면
const [t, p] = schedule[date];
// date 포함 : 상담 가능한 경우(퇴사일 이전)
if (t + date <= n) DFS(date + t, pSum + p);
// date 포함 X
DFS(date + 1, pSum);
}
for (let i = 0; i < n; i++) {
DFS(i, 0);
}
console.log(maxVal);
반응형
'Algorithm > BOJ' 카테고리의 다른 글
[알고리즘/백준/17836] 공주님을 구해라!(BFS, Nodejs) (1) | 2023.07.04 |
---|---|
[알고리즘/백준/13549] 숨바꼭질 3(BFS, 우선순위 큐, Nodejs) (0) | 2023.07.03 |
[알고리즘/백준/10866] 덱(Nodejs, 자료구조) (0) | 2023.06.15 |
[알고리즘/백준/10798] 세로읽기 (0) | 2023.06.15 |
[알고리즘/백준/1935] 후위 표기식2(Nodejs, 자료구조) (0) | 2023.06.14 |