https://programmers.co.kr/learn/courses/30/lessons/42587
import java.util.*;
class Solution {
public int solution(int[] priorities, int location) {
PriorityQueue<Integer> q = new PriorityQueue<>(Collections.reverseOrder());
for (int priority : priorities) {
q.offer(priority);
}
int answer = 1;
while(!q.isEmpty()) {
for (int i = 0; i < priorities.length; i++) {
if (q.peek() == priorities[i]) {
if (location == i) {
return answer;
}
q.poll();
answer++;
}
}
}
return answer;
}
}
처음엔 우선순위큐에 변수 priority
와 location
을 가진 사용자 정의 클래스 Task
를 만들어 직접 Comparator
를 람다로 정의해 쉽게 풀어보려고 했지만 우선순위가 같을때 넣은 순서대로 나오는게 아니어서 실패했다. 왜 실패했는지 좀 더 공부해봐야겠다.