본문 바로가기

Programmers/Level2

피로도

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