728x90
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
29
30
31
|
class Solution {
private static int answer;
private static boolean[] visited;
public int solution(int k, int[][] dungeons) {
answer = 0;
visited = new boolean[dungeons.length];
DFS(dungeons, k, 0);
return answer;
}
private void DFS(int[][] dungeons, int k, int depth){
// 돌 수 있는 던젼이 하나도 없는 경우
answer = Math.max(answer, depth);
for(int i=0; i<dungeons.length; i++){
if(!visited[i] && k>=dungeons[i][0]){
visited[i] = true;
k-=dungeons[i][1];
DFS(dungeons, k, depth+1);
// System.out.println(depth);
visited[i] = false;
k+=dungeons[i][1];
}
}
}
}
|
cs |
'알고리즘 풀이 > 프로그래머스' 카테고리의 다른 글
[프로그래머스][JAVA] 2개 이하로 다른 비트 (비트마스크?) (0) | 2022.04.02 |
---|---|
[프로그래머스][JAVA] [1차] 프렌즈4블록 (구현) (0) | 2022.04.02 |
[프로그래머스][JAVA] 큰 수 만들기 (스택, 그리디) (0) | 2022.03.31 |
[프로그래머스][JAVA] 카펫 (완전탐색) (0) | 2022.03.31 |
[프로그래머스][JAVA] H-Index (정렬, 이진탐색) (0) | 2022.03.31 |