알고리즘

프로그래머스 - 명예의 전당

계양 꿀주먹 2024. 4. 17. 01:08

 


 

import java.util.*;

class Solution {
    public int[] solution(int k, int[] score) {
        int[] answer = new int[score.length];
        PriorityQueue<Integer> priorityQueue = new PriorityQueue<>();
        int temp = 0;

        for(int i = 0; i < score.length; i++) {
            priorityQueue.add(score[i]);
            
            if (priorityQueue.size() > k) {
                priorityQueue.poll();
            }

            answer[i] = priorityQueue.peek();
        }
        return answer;
    }
}

 

 명예의 전당 목록의 k 순위의 가장 최하위 점수를 찾는 문제입니다. 자바의 우선순위 큐를 활용해, 각 점수를 큐에 넣습니다.

이 때, 큐의 크기가 k를 넘었다면 가장 낮은 점수(우선순위가 높은)을 제거 후 가장 낮은 점수를 반환하여 answer 배열에 값을 넣습니다.