![[백준 1966번 / Java] 프린터 큐](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FV7PbW%2FbtslNmN7rni%2FYLiaVDBmswB0bbP9ksMq9k%2Fimg.png)
[백준 1966번 / Java] 프린터 큐코딩테스트/백준2023. 7. 1. 08:03
Table of Contents
728x90
728x90
문제 링크
https://www.acmicpc.net/problem/1966
1966번: 프린터 큐
여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에
www.acmicpc.net
풀이
큐만 잘 알고있으면 그냥 단순 구현이 가능한 문제
문제에서, 같은 우선순위는 출력의 대상이 되는 것만 고려하면 됐다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.LinkedList;
import java.util.Queue;
import java.util.StringTokenizer;
public class BaekJoon1966 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int testcase = Integer.parseInt(br.readLine());
StringTokenizer st = null;
for(int i = 0; i < testcase; i++){
st = new StringTokenizer(br.readLine(), " ");
int N = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
st = new StringTokenizer(br.readLine(), " ");
int[] arr = new int[N];
Queue<Integer> queue = new LinkedList<>();
for(int j = 0; j < N; j++){
int tmp = Integer.parseInt(st.nextToken());
arr[j] = tmp;
queue.add(j);
}
int cnt = 0;
while(!queue.isEmpty()){
boolean chk = false;
int before = queue.poll();
for(int j : arr){
if(arr[before] < j){
queue.add(before);
chk = true;
break;
}
}
if(!chk){
cnt++;
arr[before] = 0;
if(before == M){
System.out.println(cnt);
break;
}
}
}
}
}
}
728x90
300x250
@mag1c :: 꾸준히 재밌게
2023.04 ~ 백엔드 개발자의 기록
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!