import java.util.*;
class Solution {
public int[] solution(int k, int[] score) {
int[] answer = new int[score.length];
List<Integer> array = new ArrayList<>();
for (int i=0;i< score.length;i++) {
array.add(score[i]);
Collections.sort(array);
if(array.size()>k) {
array.remove(0);
}
answer[i]=array.get(0);
}
return answer;
}
}
값을 담아줄 list를 선언 한뒤, 거기에 for문으로 score[i]를 하나씩 추가한다.
array의 크기가 k를 넘어가면 가장 작은 수를 삭제한다.
그 뒤 가장 작은 수를 answer[i]에 넣어준다.
다른 분들은
- answer[i] = Collections.min(rank);
가장 작은 수를 리턴하는 함수 사용
- PriorityQueue priorityQueue = new PriorityQueue<>();
--> peek
일반적인 큐의 구조 FIFO(First In First Out)를 가지면서, 데이터가 들어온 순서대로 데이터가 나가는 것이 아닌 우선순위를 먼저 결정하고 그 우선순위가 높은 데이터가 먼저 나가는 자료구조
역시 풀이 방법은 많다.
Queue는 생각 못했는데, 이번 기회에 볼 수 있었다.