1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
import java.util.*;
class Solution {
static int count = 0;
public static void dfs(ArrayList<int[]> allList, ArrayList<int[]> res, int k){
if(res.size() > count) {
count = res.size();
}
for(int i=0;i<allList.size();i++){
int[] dungeon = allList.get(i);
if(dungeon[0] <= k){
res.add(allList.remove(i));
dfs(allList, res, k - dungeon[1]);
allList.add(i, res.remove(res.size()-1));
}
}
}
public int solution(int k, int[][] dungeons) {
int answer = -1;
ArrayList<int[]> allList = new ArrayList<int[]>();
for(int i=0;i<dungeons.length;i++){
allList.add(dungeons[i]);
}
dfs(allList, new ArrayList<int[]>(), k);
answer = count;
return answer;
}
}
|
cs |
다음엔 ArrayList 말고 boolean으로 해결해봐야겠다.
'Programmers > Level2' 카테고리의 다른 글
중복 제거하기 (0) | 2021.12.22 |
---|---|
n^2 배열 자르기 (0) | 2021.10.25 |
전력망을 둘로 나누기 (0) | 2021.10.12 |
모음 사전 (0) | 2021.10.09 |
가장 먼 노드 (0) | 2021.08.08 |