[프로그래머스] 피로도 - 자바
나의 풀이
class Solution {
int answer = 0;
boolean[] visited;
public int solution(int k, int[][] dungeons) {
visited = new boolean[dungeons.length];
dfs(0, k, dungeons);
return answer;
}
private void dfs(int depth, int k, int[][] dungeons) {
for (int i = 0; i < dungeons.length; i++) {
if (!visited[i] && dungeons[i][0] <= k) {
visited[i] = true;
dfs(depth+1, k - dungeons[i][1], dungeons);
visited[i] = false;
}
}
answer = Math.max(depth, answer);
}
}
접근
- 주어진 던전의 개수가 1~8밖에 되지않기때문에 완전탐색 고려
- 모든 던전의 경우의 수를 탐색해야하기 때문에 DFS 고려