프로그래머스 LEVEL 1(명예의 전당(1))

image

  • 사용 언어 : javascript

  • 해결 날짜 : 2022-11-27

  • 해결 방법 :
    • score을 돌며 현재 명예의 전당에 올라간 가수의 수가 k보다 적을 경우
      • 명예의 전당에 올리고, 내림차순 정렬
    • 명예의 전당에 올라간 가수의 수가 k와 같을 경우
      • 현재 점수와 명예의 전당의 최하위 점수와 비교하여 현재 점수가 클 때 update
    • 명예의 전당의 최하위 점수 answer에 추가
  • 회고 :
    • x
  • 코드

    function solution(k, score) {
        const answer = [];
        const hallOfFame = [];
            
        for (const s of score) {
            if (hallOfFame.length < k) {
                hallOfFame.push(s);
                hallOfFame.sort((a, b) => b - a);
            } else {
                const temp = hallOfFame.pop();
                if (temp < s) {
                    hallOfFame.push(s);
                    hallOfFame.sort((a, b) => b - a);
                } else {
                    hallOfFame.push(temp);
                }
            }
            answer.push(hallOfFame[hallOfFame.length - 1]);
        }
            
        return answer;
    }
    
  • 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges