[Java] 백준 프린터 큐

Lee GaEun·2025년 7월 22일

[Java] 알고리즘

목록 보기
83/93

1966 프린터 큐 문제 링크

#1

package forStudy;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayDeque;
import java.util.Deque;
import java.util.StringTokenizer;

public class printerQue {
	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		
		int T = Integer.parseInt(br.readLine());
		for(int t=0; t<T; t++) {
			StringTokenizer st = new StringTokenizer(br.readLine());
			int N = Integer.parseInt(st.nextToken());
			int M = Integer.parseInt(st.nextToken());
			
			st = new StringTokenizer(br.readLine());
			Deque<Integer> file = new ArrayDeque<>();
			int W = 0;
			int max = 0;
			int now;
			for(int i=0; i<N; i++) {
				now = Integer.parseInt(st.nextToken());
				if(i==M) {
					file.addLast(now+100);
				}
				else file.addLast(now);
				max = Math.max(max, now%100);
			}
			
			int i = 1;
			while(!file.isEmpty()) {
				now = file.poll();
				if(now == max+100) break;
				
				if(now == max) {
					i++;
					max = 0;
					for(int a : file) {
						max = Math.max(max, a%100);
					}
					continue;
				}
				file.addLast(now);
			}
			
			bw.write(i+"\n");
		}
		
		bw.flush();
		bw.close();
	}
}

  • 조작을 하려고 보니까 target이랑 우선순위가 같은 것들을 비교할 수가 없어서
  • target에 100을 더해서 구분
  • 이후는 그냥 설명 그대로 자료구조에 동작 구현
profile
I will give it my all (๑•̀o•́๑)ง

0개의 댓글