https://www.acmicpc.net/problem/1966
큐를 활용할 줄 아는지 묻는 문제이다. 우선순위와 문서의 인덱스를 담는 클래스를 생성한 후 Queue에 넣는다. 우선순위가 가장 높은 것부터 뽑기 위해 정렬 후 출력할 우선순위와 맞지 않는 문서는 뒤로 보내도록 구현하였다.
import java.util.*;
public class Main1966 {
    static int T;
    static class Document{
        public int priority;
        public int sequence;
        Document(int p, int s){
            priority = p;
            sequence = s;
        }
    }
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        T = sc.nextInt();
        for(int t = 0; t < T; t++){
            ArrayList<Integer> ranks = new ArrayList<>();
            Queue<Document> que = new LinkedList<>();
            int N = sc.nextInt();
            int M = sc.nextInt();
            for(int i = 0; i < N; i++){
                int rank = sc.nextInt();
                que.add(new Document(rank, i));
                ranks.add(rank);
            }
            ranks.sort(null);
            int index = ranks.size()-1;
            int count = 1;
            while(!que.isEmpty()){
                Document present = que.poll();
                if(present.priority < ranks.get(index)){
                    que.offer(present);
                }
                else{
                    if(present.sequence == M)
                        break;
                    count++;
                    index--;
                }
            }
            System.out.println(count);
        }
    }
}
큐