[프로그래머스/Lv1/자바스크립트] 과일 장수

2023. 6. 13. 12:05

문제

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

 

프로그래머스

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

programmers.co.kr


코드

function solution(k, m, score) {
    var sortedScore = score.sort((a, b) => a- b);
    var answer = 0;
    while(sortedScore.length >= m) {
        var appleBox = sortedScore.splice(-m);
        answer += appleBox[0] * m;
    }
    
    return answer;
}

메모

입력받은 score 배열을 우선 오름차순으로 정렬한다.

오름차순으로 정렬한 배열을 뒤에서 m만큼 splice한다(사과박스).

이 splice한 배열의 0번째 인덱스는 사과박스에서 가장 점수가 낮은 사과일 것이다.

appleBox[0] 값과 m을 곱한 값을 answer에 더해준다.

 

이것을 sortedScore 배열의 길이가 m보다 작아질때 까지 반복한다.

 

문제에서는 가장 높은 사과점수 k를 제공했는데, 나는 이 문제를 풀면서 k의 필요성을 느끼지 못했다.

만약 사용한다면 score 배열에서 등장하는 1부터 k의 개수를 세서 문제를 풀 수 있을 것 같다.

BELATED ARTICLES

more