반응형
완전 탐색 문제로 접근하여 풀이
프로그래머스 : 피로도 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;
}
}
}
}
반응형