function solution(k, dungeons) {
const visited = Array(dungeons.length).fill(false);
let result = 0;
const dfs = (k, cnt, dungeons, visited) => {
for (let i = 0; i < dungeons.length; ++i) {
const [min, use] = dungeons[i];
if (visited[i] || min > k) continue;
visited[i] = true;
dfs(k - use, cnt + 1, dungeons, visited);
visited[i] = false;
}
result = Math.max(result, cnt);
};
dfs(k, 0, dungeons, visited);
return result;
}
혼자 고민하다 도저히 답이 없어서 사람들의 힌트를 보고 겨우 풀었다.
풀고서도 뭔가 명쾌하지가 않다...