Algorithm
[백준-1966번/Java] 프린터 큐
1984
2022. 11. 19. 22:23
* Queue 사용
* 테스트 케이스 마다 queue를 초기화 해주거나, queue.clear() 해줘야 한다.
import java.io.*;
import java.util.*;
import java.math.*;
public class Main {
static Queue<Integer> printer = new LinkedList<Integer>();
private static boolean isHighPriority(int priority) {
for (Integer i : printer) {
if (i > priority) {
return false;
}
}
return true;
}
private static void print_status() {
for (Integer integer : printer) {
System.out.print(integer + " ");
}
System.out.println();
}
public static void main(String[] args) throws IOException {
Scanner in = new Scanner(System.in);
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int T = in.nextInt();
for (int i = 0; i < T; i++) {
int N = in.nextInt();
int M = in.nextInt();
for (int j = 0; j < N; j++) {
printer.add(in.nextInt());
}
int count = 0;
while (true) {
if (isHighPriority(printer.peek())) {
printer.poll();
count++;
if (M == 0) {
break;
} else {
M--;
}
} else {
printer.add(printer.poll());
if (M == 0) {
M = printer.size() - 1;
} else {
M--;
}
}
}
bw.write(count + "\n");
printer.clear();
}
bw.flush();
}
}
728x90