class Solution {
public boolean[] visited;
public int answer = 0;
public int solution(int k, int[][] dungeons) {
visited = new boolean[dungeons.length];
recur(0, k, dungeons, 0);
return answer;
}
public void recur(int index, int k, int[][] dungeons, int count) {
if(index==dungeons.length) {
answer = Math.max(answer, count);
return;
}
for(int i=0; i<dungeons.length; i++) {
if(!visited[i] || k>=dungeons[i][0]) {
visited[i] = true;
recur(index+1, k-dungeons[i][1], dungeons, count+1);
recur(index+1, k, dungeons, count);
visited[i] = false;
}
}
}
}
'Problem Solving > Programmers' 카테고리의 다른 글
[Level 2] 삼각 달팽이 (0) | 2022.04.06 |
---|---|
[Level 2] 2개 이하로 다른 비트 (0) | 2022.04.06 |
[Level 2] 큰 수 만들기 (0) | 2022.04.06 |
[Level 2] 카펫 (0) | 2022.04.06 |
[Level 2] H-Index (0) | 2022.04.06 |