반응형

완전 탐색 문제로 접근하여 풀이

프로그래머스 : 피로도 Lv.2

 

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

class Solution {
    
    int answer = 0;
    
    public int solution(int k, int[][] dungeons) {
        int n = dungeons.length;
		int[][] output = new int[n][n];
		boolean[] visited = new boolean[n];
		
		perm(dungeons, output, visited, 0, n, n, k);
        
        return answer;
    }
    
    public void perm(int[][] dungeons, int[][] output, boolean[] visited, int depth, int n, int r, int k)   {
		
		if(depth == r) {
			int cnt = 0 ;
			
			for(int[] result : output) {
				if(k >= result[0]) {
					k-= result[1];
					cnt++;
				}
			}
			System.out.println();
			
			answer = Math.max(cnt, answer);
			return;
		}
		
		for(int i=0;i<n;i++) {
			if(!visited[i]) {
				visited[i] = true;
				output[depth][0] = dungeons[i][0];
				output[depth][1] = dungeons[i][1];
				perm(dungeons, output, visited, depth+1, n, r, k);
				visited[i] = false;
			}
		}
	}
}
반응형

'알고리즘 > 프로그래머스' 카테고리의 다른 글

대충 만든 자판  (0) 2024.03.14
체육복  (0) 2024.03.13
호텔 대실  (0) 2024.03.09
로또의 최고 순위와 최저 순위  (0) 2024.03.08
숫자 짝꿍  (0) 2024.02.25

+ Recent posts