상세 컨텐츠

본문 제목

[프로그래머스] 피로도

💯ProblemSolving/문제 풀이-Java

by :부셔져버린개발자 2025. 1. 31. 10:51

본문

       문제 요약        

- 문제

https://school.programmers.co.kr/learn/courses/30/lessons/87946

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

         아이디어        

 

완전탐색 + 구현

: 현재 던전에 갈 수도 안갈 수도 있음 

 

         소스코드        

class Solution {
    static int N;
    static int[] selected;
    static boolean[] visited;
    static int[][] dun;
    static int answer = -1;
    
    public int solution(int k, int[][] dungeons) {
        N = dungeons.length;
        selected = new int[N];
        visited = new boolean[N];
        dun = dungeons;
        
        back(0, k, 0);
        return answer;
    }
    
    static void back(int cnt, int k, int travelCnt) {
        if(cnt == N) {
            answer = Math.max(travelCnt, answer);
            return;
        }
        for(int i = 0; i < N; i++) { 
            if(visited[i])continue;
            visited[i] = true;
            if(dun[i][0] <= k) {
                back(cnt + 1, k - dun[i][1], travelCnt + 1);        
            }
            back(cnt + 1, k , travelCnt );        
            visited[i] = false;
        }
    }
}

 

 

728x90

관련글 더보기