알고리즘/프로그래머스
프로그래머스 프린터(자바)
김어찐
2021. 9. 29. 01:15
728x90
import java.util.LinkedList;
import java.util.PriorityQueue;
import java.util.Queue;
class Solution {
public static int solution(int[] priorities, int location) {
int answer = 1;
Queue<Printer> q = new LinkedList<>();
PriorityQueue<Printer> pq = new PriorityQueue<>();
for (int i = 0; i < priorities.length; i++)
{
Printer pt = new Printer(i,priorities[i]);
pq.add(pt);
q.add(pt);
}
while(!q.isEmpty()){
Printer nowPt = q.poll();
if (pq.peek().value == nowPt.value) {
pq.poll();
if(nowPt.idx==location){
break;
}
answer++;
}
else{
q.add(nowPt);
}
}
return answer;
}
}
class Printer implements Comparable<Printer>{
int idx;
int value;
public Printer(int idx, int value) {
this.idx = idx;
this.value = value;
}
@Override
public int compareTo(Printer o) {
return -(this.value - o.value);
}
}
728x90