https://programmers.co.kr/learn/courses/30/lessons/87946?language=javascript
최소 피로도, 소모 피로도가 서로 다르기 때문에 특별한 공식은 없고 모든 경우에 수를 다 계산해 봐야 할 것 같다.
뭐 던전의 개수가 8개 이하기도 하고...
모든 프로그래머스 문제 관련 코드들은 GitHub 링크 에 있음.
const getMaxDungeons = (k, dungeons, currentNum) => {
let result = currentNum;
dungeons = dungeons.filter(d => d[0] <= k);
dungeons.map((d, index) => {
const newTargets = dungeons.filter((fd, fi) => fi !== index);
const tempResult = getMaxDungeons(k - d[1], newTargets, currentNum + 1);
if (tempResult > result) {
result = tempResult;
}
});
return result;
}
function solution(k, dungeons) {
return getMaxDungeons(k, [...dungeons], 0);
}