https://campus.programmers.co.kr/courses/15436/lessons/132833
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
class Solution {
private int answer = 0; //유저가 탐험할 최대 던전의 개수를담는 배열
private boolean[] visit; //dfs
public int solution(int k, int[][] dungeons) { //피로도 dungenon배열
visit = new boolean[dungeons.length]; //던전 탐험 여부 = 던전의 개수와 같다
dfs(0, k, dungeons); //0은 depth, k 는 현재 피로도
return answer;
}
private void dfs(int depth, int k, int[][]dungeons){
for(int i = 0; i<dungeons.length; i++){
if(!visit[i]&& dungeons[i][0]<=k){ //던전을 돌지 않았거나 던전 도전을 위한 최대 피로도 조건을 충족(dungeons[i][0]<=k)
visit[i] = true;
dfs(depth+1, k-dungeons[i][1], dungeons); //던전을 돈 후 던전을 돈회수증가+ 소모피로도 계산
visit[i] = false;
}
}
answer = Math.max(answer, depth);
}
}
dfs를 사용한다
'JAVA' 카테고리의 다른 글
프로그래머스 송아지 찾기 (0) | 2022.12.07 |
---|---|
오라클 커서(CURSOR) 예시 (0) | 2022.12.06 |
프로그래머스 단속카메라 (0) | 2022.11.21 |
[프로그래머스] 보석 쇼핑 (Java) (0) | 2022.11.14 |
[프로그래머스] 주차 요금 계산 (JAVA) (0) | 2022.11.12 |