링크 : https://school.programmers.co.kr/learn/courses/30/lessons/87946
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 풀이
완전탐색을 통해 탐색할 수 있는 모든 던전의 조합을 확인한다.
DFS를 수행하며 탐험한 던전의 최대값을 기록한다.
import java.util.*;
class Solution {
static int answer = 0;
public int solution(int k, int[][] dungeons) {
boolean[] visited = new boolean[dungeons.length];
DFS(visited, dungeons, k, 0);
return answer;
}
private void DFS(boolean visited[], int[][] dungeons, int k, int count) {
answer = Math.max(answer, count);
for(int i=0; i<dungeons.length; i++) {
if(k >= dungeons[i][0] && !visited[i]) {
// 최소 피로도보다 현재 피로도가 높다면 체력 소모 O
visited[i] = true;
DFS(visited, dungeons, k - dungeons[i][1], count + 1);
visited[i] = false;
}
}
}
}'알고리즘 > 프로그래머스' 카테고리의 다른 글
| [프로그래머스] 다리를 지나는 트럭(Java) (2) | 2024.10.21 |
|---|---|
| [프로그래머스] 카펫(Java) (2) | 2024.10.17 |
| [프로그래머스] 구명보트(Java) (2) | 2024.10.14 |
| [프로그래머스] 성격 유형 검사하기(Java) (4) | 2024.10.09 |
| [프로그래머스] 신고 결과 받기(Java), HashSet 사용 (0) | 2024.10.06 |