JiwonKKang/[프로그래머스] 피로도 - 자바

Created Sun, 03 Dec 2023 23:48:41 +0900 Modified Sun, 03 Dec 2023 23:50:55 +0900

[프로그래머스] 피로도 - 자바

나의 풀이


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. 주어진 던전의 개수가 1~8밖에 되지않기때문에 완전탐색 고려
  2. 모든 던전의 경우의 수를 탐색해야하기 때문에 DFS 고려