import java.util.ArrayList;
class Solution {
public int solution(int[] priorities, int location) {
int answer = 0;
ArrayList<Integer> list = new ArrayList<>();
for (int i : priorities)
list.add(i);
while (true){
boolean flag = true;
for (int k=1;k<list.size();k++){ //그때그때 최대값 찾기
if(list.get(0)<list.get(k)){ //2번조건 뒤로가기
if(location==0) { //요청한 문서가 제일 앞에 있을 때
location = list.size();
}
flag = false;
list.add(list.get(0));
list.remove(0);
break;
}
}
location -= 1;
if(flag){ //3번 조건
list.remove(0);
answer++;
if(location == -1) break;
}
}
return answer;
}
}
배열을 정렬해서 최대값부터 큐와 비교하기
import java.util.*;
class Solution {
public int solution(int[] priorities, int location) {
int answer = 0;
Queue<Integer> q = new LinkedList<>();
for (int k : priorities) q.add(k);
Arrays.sort(priorities);
while (location != -1){
Integer poll = q.poll();
if(poll<priorities[priorities.length-1-answer]){ // Q값이 최대값보다 작을 때
q.add(poll);
if(location==0) location = q.size();
location--;
}else{ // 출력
location--;
answer++;
}
}
return answer;
}
}