https://programmers.co.kr/learn/courses/30/lessons/87946
순열 문제이다.
가능한 순서를 모두 조합한 후 탐험된 던전의 개수가 가장 큰 것을 리턴한다.
function solution(k, dungeons) {
var answer = 0;
let check = Array(dungeons.length).fill(0);
function DFS(L, k) {
if (k === 0) {
if (L > answer) answer = L;
}
else if (L === dungeons.length) answer = L;
else {
for (let i = 0; i < dungeons.length; i++) {
if (check[i] === 0 && dungeons[i][0] <= k) {
check[i] = 1;
DFS(L+1, k-dungeons[i][1]);
check[i] = 0;
}
}
if (L > answer) answer = L;
}
}
DFS(0, k);
return answer;
}