명예의 전당 (1)

hyuri·2023년 9월 26일
0

코딩테스트 연습

목록 보기
40/70

내가 작성한 답

function solution(k, score) {
    var answer = [];
    let scoreArray = [];
    score.map(a => {
        if(scoreArray.length !== k) {
            scoreArray.push(a)
        } else {

            if (a > scoreArray[0]) { 
                scoreArray.shift()
                scoreArray.push(a);
            }
        }
        scoreArray.sort((b,c) => b - c);
        answer.push(scoreArray[0]);
    })
    return answer;
}

다른 답

function solution(k, score) {
    var answer = [];

    return score.reduce((acc, cur) => {
        answer.push(cur);
        answer = answer.sort((a, b) => b - a).slice(0, k);
        return [...acc, Math.min(...answer)];
    }, []);
}

해석

나는 k 만큼 배열이 생성되지 않으면 push하고 내림차순하고 생성되어 있으면 최소값과 score값을 비교하여 맨 앞의 값을 삭제할 지 안할 지 정했다.
다른 답은 값을 push하고 내림차순으로 정리한 다음에 0번째부터 k번째까지 잘랐다. 와우....

profile
개발자가 되고 싶은 지망생

0개의 댓글