
광물 캘때 피로도가 발생한다,
피로도가 적게 발생하는 경우를 찾는 문제

곡갱이의 수는 한정되어있다. > 다캘수는 없고 캘수있는 광물의 수는 한정되어있다.
곡갱이는 한번쓴경우 -=1 된다.
곡갱이를 어떻게 선택할수있을까?
picks.findIndex((el)=>el!=0);
을 사용하여 곡갱이를 선택하는 방법으로 하였다.
곡갱이 수에 따른 광물 뽑아내기
var gogk__total=picks.reduce((ac,cure)=>ac+cure)*5;
minerals= minerals.splice(0,gogk__total);
광물 이만큼만 쓰겠다는 의미
var fist= minerals.splice(0,5);
splice 함수로 잘라낸다고 생각하면된다.
다이아 몬드 갯수로 내림차순 하기
function solution(picks, minerals) {
var obj={
0:[1,1,1],
1:[5,1,1],
2:[25,5,1]
}
const name_index=function(name){
if(name=='diamond'){
return 0;
}
if(name=='iron'){
return 1;
}
if(name=='stone'){
return 2;
}
}
const name__index=function(name){
if(name=='diamond'){
return 10;
}
if(name=='iron'){
return 2;
}
if(name=='stone'){
return 1;
}
}
var main__ar=[];
var gogk____total=picks.reduce((ac,cure)=>ac+cure)*5;
minerals= minerals.splice(0,gogk____total);
for(var i=0; i<gogk____total; i++){
var fist= minerals.splice(0,5);
var count=0;
fist.map((el)=>{
count+=name__index(el)
})
main__ar.push([count,fist])
i+=4;
}
main__ar.sort((a,b)=>{ return b[0]-a[0]
});
var totla_count=0;
for(var ii=0; ii<main__ar.length; ii++){
var gogk___=picks.findIndex((el)=>el!=0);
var [_,start]= main__ar[ii];
start.map((ev)=>{
totla_count+=obj[gogk___][name_index(ev)]
})
picks[gogk___]-=1;
}
return (totla_count)
}
처음에는 광물을 5 개씩 자를때 처음 index 와, 끝 index 를 통해서 다시 얻어내는 과정을 사용했는데 에러가 나서 몇번 생각하다보니 이 방법이 더 빠를거 같아서 고쳤다.
그리고 다이아몬드를 3 철 2 돌 1 로 했더니 오류나서 그냥 10 으로 바꿧더니 오류가 해결되었다. 아무래도 다이아몬드가 25 라는 큰수 이기 때문에 몇개의 테스트 케이스에서 오류가 발생하는듯 하다.