https://school.programmers.co.kr/learn/courses/30/lessons/172927
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
import java.util.*;
class Solution {
private static String[] AX = {"diamond","iron","stone"};
private static int[] LEVEL = {25,5,1};
public int solution(int[] picks, String[] minerals) {
int size = minerals.length;
int[] intMinerals = new int[size];
for(int i = 0 ; i < size ; i++){
for(int j = 0 ; j < 3 ; j++){
if(AX[j].equals(minerals[i])){
intMinerals[i] = LEVEL[j];
break;
}
}
}
// System.out.println(Arrays.toString(intMinerals));
int answer = dfs(0,picks,intMinerals,size);
return answer;
}
private static int INF = 987654321;
private static int dfs(int depth , int[] picks, int[] minerals, int size){
if(depth >= size){
return 0;
}
int result = INF;
for(int i = 0 ; i < 3 ; i++){
if(picks[i] == 0){
continue;
}
int sum = 0;
for(int j = depth ; j < Math.min(depth + 5, size) ; j++){
sum += Math.max(1,minerals[j] / LEVEL[i]);
}
picks[i]--;
result = Math.min(result, dfs(depth + 5,picks,minerals,size) + sum);
picks[i]++;
}
if(result == INF){
return 0;
}
return result;
}
}
'알고리즘' 카테고리의 다른 글
프로그래머스 그림 확대 (JAVA) (0) | 2023.05.02 |
---|---|
프로그래머스 혼자 놀기의 달인 (JAVA) (0) | 2023.05.01 |
프로그래머스 디펜스 게임 (JAVA) (0) | 2023.04.29 |
프로그래머스 2의 영역(JAVA) (0) | 2023.04.28 |
프로그래머스 qr code (JAVA) (0) | 2023.04.27 |