본문 바로가기

프로그래머스

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

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

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr


접근방법

최초 score 배열을 sort한 이후 score를 m으로 나눈 나머지를 잘라낸다. 이후 sort배열의 m단위씩 묶어 계산한다.

1차 제출

function solution(k, m, score) {

    let sort = score.sort((a,b) => a-b).slice(score.length % m)
    
    let count = 0
    let sum = 0;
    while(count < sort.length){
        sum += sort[count] * m
        count += m
    }
    
    return sum
}

결과 : 100점

개선

function solution(k, m, score) {
    let sort = score.sort((a, b) => a - b);
    
    let sum = 0;
    
    for (let i = score.length - m; i >= 0; i -= m) {
        sum += sort[i] * m; 
    }
    
    return sum;
}

- 불필요한 코드 최적화