import java.util.Arrays;
class Solution {
public int[] solution(int k, int[] score) {
int[] answer = new int[score.length];
int[] winner = new int[k]; //arraylist 사용
//answer에 있는 제일 작은 값과 새로운 값 비교 => 그것보다 크면 바꾸고 오름차순 정렬
for(int i=0;i<score.length;i++){
//k값 보다 적게 들어 있으면 그냥 넣기
if(i<k) winner[i]=score[i];
else if(winner[0]<score[i]) winner[0]=score[i];
//삽입 정렬 or Arrays.sort(winner);
for(int j=1;j<Math.min(winner.length,i+1);j++){
for(int s=j;s>0 && winner[s]<winner[s-1];s--){
int temp = winner[s-1];
winner[s-1] = winner[s];
winner[s] = temp;
}
}
answer[i] = winner[0];
}
return answer;
}
}
그냥 우선순위 큐를 활용해서도 가능
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();
}