문제 출처-https://school.programmers.co.kr/learn/courses/30/lessons/135808
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 설명
문제풀이
function solution(k, m, score) {
var answer = 0;
var appleBox = [];
// 내림차순 정렬
score.sort((a,b) => b-a);
// box를 빈배열로 선언
// box에 사과를 넣음 , 사과를 넣으면서 만약 사과의 갯수가 한상자에 들어갈수있는 최대의 수라면 box를 appleBox에 추가
// 다시 box는 빈배열로 선언
for(let i = 0 , box = [] ; i<score.length; i ++){
box.push(score[i])
if((i + 1) % m === 0){
appleBox.push(box);
box = [];
}
}
//그렇게 만들어진 appleBox는 반복문을통해
//사과박스에 들어있는 사과의 점수중 가장 낮은숫자와 m을 곱해서 사과박스의 점수를 매기고 모두 합산하여 값을 리턴함
for(let i = 0; i < appleBox.length; i++){
answer += Math.min(...appleBox[i]) * m ;
}
return answer;
}
반복문의 선언부에 box = [] 이렇게 선언할 수 있다는것을 처음알았다... 굉장히 풀이가 깔끔했고 또 보기도 쉬웠다.
점점 문제가 어려워 지는것이 느껴지고 혼자힘으로 풀 수 없는 문제들이 많아진다 ㅠㅠㅜ 그래도 포기 않고 열심히 빠이티이잉
'알고리즘' 카테고리의 다른 글
[BOJ]2525번 - 오븐 시계(JS) (0) | 2024.05.05 |
---|---|
[알고리즘] 백준허브에서 JS 사용하기 (1) | 2024.05.02 |
[알고리즘] 프로그래머스 Lv.2 - 가장 큰 수(JS) (0) | 2024.04.04 |
[알고리즘]프로그래머스Lv.1 - 완주하지 못한 선수 (JS) (0) | 2024.04.03 |
[알고리즘]프로그래머스 Lv.1 - 기사단원의 무기 (0) | 2024.04.01 |