250x250
Notice
Recent Posts
Recent Comments
관리 메뉴

탁월함은 어떻게 나오는가?

[Algorithm] 광물캐기 ( Programmers - JavaScript ) 본문

[Snow-ball]프로그래밍(컴퓨터)/Algorithm Training

[Algorithm] 광물캐기 ( Programmers - JavaScript )

Snow-ball 2023. 10. 11. 21:04
반응형

문제 설명

 

 

 

 


 

 

 

제한사항

 

 

 


 

 

 

입출력 예

 

 

 


 

 

 

입출력 예 설명

 

 

 


 

 

 

풀이

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
function solution(picks, minerals) {
  let answer = 0;
 
  const length = Math.ceil(minerals.length / 5);
  const mineralList = minerals.splice(0, picks.reduce((a, b) => a + b) * 5);
  const caseArr = [];
 
  for (let i = 0; i < length++i) {
    const mineralsObj = { diamond: 0, iron: 0, stone: 0 };
 
    mineralList.splice(05).forEach((mineral) => mineralsObj[mineral]++);
 
    const { diamond, iron, stone } = mineralsObj;
    caseArr.push([
      diamond + iron + stone,
      diamond * 5 + iron + stone,
      diamond * 25 + iron * 5 + stone,
    ]);
  }
 
  caseArr
    .sort((a, b) => b[2- a[2])
    .forEach((value) => {
      const [diamond, iron, stone] = picks;
 
      if (diamond > 0) {
        picks[0]--;
        answer += value[0];
        return;
      }
 
      if (iron > 0) {
        picks[1]--;
        answer += value[1];
        return;
      }
 
      if (stone > 0) {
        picks[2]--;
        answer += value[2];
        return;
      }
    });
 
  return answer;
}
cs

 

 

 

 

 

 

 

 

 

 

https://school.programmers.co.kr/learn/courses/30/lessons/172927

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

 

 

 

반응형
Comments