프로그래머스 Level2 - 피로도

JH·2022년 12월 12일
0
post-thumbnail

문제

입력

출력

예제

idea

이 경우에는 순서만 바꾸는 모든 상황을 확인해야 하기 때문에 순열로 판단을 하였다.
순열로 정렬을 하여 numbers를 저장해둔 후 조건에 따라 비교를 하였고 조건에 맞으면 계산을 하며 탐험수를 증가시켰다.
그 후 최대값을 answer로 설정하였다.

Code

import java.io.*;
import java.util.*;

class Solution {
    static int y;
    static int x;
    static boolean selected[];
    static int num;
    static int answer=0;
    static int numbers[][];
    public int solution(int k, int[][] dungeons) {
        
        
        
        y = dungeons.length;
        x = dungeons[0].length;
        num = y;
        
        selected = new boolean[y];
        numbers = new int[y][2];
        permutation(k, 0,dungeons);
        
        return answer;
    }
    public static void permutation(int k, int index, int[][] dungeons){
       
        if(index == num){
            //System.out.println(Arrays.toString(numbers[0]));
            int max=0;
            for(int i=0;i<y;i++){
                //System.out.println(k +" : "+numbers[i][0]);
                if(k<numbers[i][0]) continue;
                
                k-=numbers[i][1];
                max++;
                //System.out.println(max)
            }
            
            if(max>answer)
                answer=max;
			
            return;
        }     
        for(int i=0;i<y;i++){
            if(selected[i]) continue;
            
            numbers[index][0] = dungeons[i][0];
            numbers[index][1] = dungeons[i][1];
            //System.out.println(numbers[index]);
			
            selected[i] = true;
			permutation(k,index+1,dungeons);
		    selected[i] = false;
               
        }        
    }
}

결과

0개의 댓글