프로그래머스 Lv.1 : 과일 장수

zeroequaltwo·2022년 11월 29일
0

코딩테스트

목록 보기
50/69

문제

프로그래머스 문제

내 풀이

  • while로 루프 돌려서 배열을 제거해가면서 푸니까 시간초과가 나고 for로 원본 배열 훼손 안 하고 푸니까 시간초과가 안 난다.
function solution(k, m, score) {
    let result = 0;
    score.sort((a,b) => b-a);

    // while(score.length >= m){
    //     let detached = score.splice(0,m);
    //     result += detached[detached.length-1] * m;
    // }
    
    for(var i=0; i<score.length; i += m){
        if(score.length - i >= m){
            let detached = score.slice(i,i+m);
            result += detached[detached.length-1] * m;             
        }

    }
    
    return result;
}

개선점

  • 아래는 미리 못쓰는 사과 개수는 떼어버리고 시작한 풀이다.
function solution(k, m, score) {
    let answer = 0;
    const sortedScore = score.slice().sort((a, b) => a - b).slice(score.length % m);
    for (let i = 0; i < sortedScore.length; i += m) {
        answer += sortedScore[i] * m;
    }
    return answer;
}
profile
나로 인해 0=2가 성립한다.

0개의 댓글