https://programmers.co.kr/learn/courses/30/lessons/42587
📒 문제
📒 제한사항
👣 코드
import java.util.Collections;
import java.util.PriorityQueue;
class Solution {
public int solution(int[] priorities, int location) {
int answer = 0;
PriorityQueue<Integer> pq = new PriorityQueue<>(Collections.reverseOrder());
for (int i = 0; i < priorities.length; i++) {
pq.offer(priorities[i]);
}
while (!pq.isEmpty()) {
for (int i = 0; i < priorities.length; i++) {
if (pq.peek() == priorities[i]) {
pq.poll();
answer++;
if (i == location) {
pq.clear();
break;
}
}
}
}
return answer;
}
}
💡 정리하기
👉 처음에 priority queue가 아닌 queue를 사용해서 하려니 계속 바뀌는 location을 찾는 부분에 막혀서 풀지 못했는데 priority queue를 사용하여 애초에 내림차순으로 정렬해서 location의 수만큼 거를 수 있었다.