[스터디] 프로그래머스 과일장수

kcs·2022년 11월 17일
0

study

목록 보기
1/1

문제

최대값이 k이고 랜덤한 length를 가진 정수배열을 input으로 받는다.
배열의 요소를 m개씩 묶어서 나오는 배열들 중 최소값을 p라 한다.
p*m*배열의 개수의 개수의 최대치를 구한다.

해결방법

최대치를 구하기 위해 배열을 오름차순으로 정렬한다.
그 후 배열을 m개씩 묶어준다
각 배열에 대해 누적계산을 한다.

코드

function solution(k, m, score) {
    const sortedScore = score.sort((a,b) => b- a)
    
    function boxingArr(arr, num) {
        const newArr = []
        for (let i = 0; i <= arr.length-m; i += num) {
            newArr.push(arr.slice(i, i + num))
        }
        // console.log(newArr)
        return newArr
    }
    
    const boxes = boxingArr(sortedScore, m)
    const ans = boxes.reduce((acc, cur) => {
        // console.log(cur[m-1] * m)
        return acc + (Number(cur[m-1]) * m)
    }, 0)
    // console.log(ans)
    return ans
}
profile
프론트엔드 개발자

0개의 댓글

관련 채용 정보