프로그래머스 [프로세스]
문제보기

소스코드
import java.util.*;
class Solution {
public static int solution(int[] priorities, int location) {
Queue<Process> queue = new ArrayDeque<>();
List<Integer> priorityList = new LinkedList<>();
for (int i = 0; i < priorities.length; i++) {
queue.add(new Process(priorities[i], i));
priorityList.add(priorities[i]);
}
Collections.sort(priorityList);
int order = 0;
while (!queue.isEmpty()) {
Process process = queue.poll();
int priorityIdx = priorityList.size() - 1;
if (process.priority < priorityList.get(priorityIdx)) {
queue.add(process);
} else {
order++;
priorityList.remove(priorityIdx);
if (process.location == location) {
return order;
}
}
}
return order;
}
}
class Process {
int priority;
int location;
public Process(int priority, int location) {
this.priority = priority;
this.location = location;
}
}