SSONG Cloud

[백준] 18258 큐 2 본문

Algorithm/백준

[백준] 18258 큐 2

SSONGMI 2021. 6. 15. 09:41
반응형

문제 출처: 문제 출처: https://www.acmicpc.net/problem/1966

 

1966번: 프린터 큐

여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에

www.acmicpc.net

 

1. 입력

: 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 2,000,000)이 주어진다.

: 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다.

: 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다.

: 문제에 나와있지 않은 명령이 주어지는 경우는 없다.

 

2. 출력

: 출력해야하는 명령이 주어질 때마다, 한 줄에 하나씩 출력한다.

 

3. 풀이

: 각 명령문에 따라 수행해야하는 동작을 구현한다.

: 일반 큐로 하면 가장 뒤에 있는 원소를 접근할 수 없으므로 Deque의 pollLast로 구현하도록 한다.

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

public class 큐2 {
	static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
	static StringBuilder sb = new StringBuilder();
	static StringTokenizer st;
	public static void main(String[] args) throws Exception{
		Deque<Integer> q = new ArrayDeque<>();
		
		int N = Integer.parseInt(br.readLine());
		
		for(int i = 0; i < N; i++) {
			st = new StringTokenizer(br.readLine());
			String command = st.nextToken();
			if("push".equals(command)) {
				int num = Integer.parseInt(st.nextToken());
				q.offer(num);
			}else if("pop".equals(command)) {
				if(q.isEmpty()) {
					sb.append("-1\n");
				}else {
					sb.append(q.poll()+"\n");
				}
			}else if("size".equals(command)) {
				sb.append(q.size()+"\n");
			}else if("empty".equals(command)) {
				sb.append((q.isEmpty() ? 1 : 0) + "\n");
			}else if("front".equals(command)) {
				if(q.isEmpty()) {
					sb.append("-1\n");
				}else {
					sb.append(q.peekFirst()+"\n");
				}
			}else if("back".equals(command)) {
				if(q.isEmpty()) {
					sb.append("-1\n");
				}else {
					sb.append(q.peekLast()+"\n");
				}
			}
		}
		System.out.println(sb);
	}
}
반응형

'Algorithm > 백준' 카테고리의 다른 글

[백준] 숨바꼭질  (0) 2021.06.16
[백준] 3584 가장 가까운 공통 조상  (0) 2021.06.16
[백준] 1269 대칭 차집합  (0) 2021.06.15
[백준] 10866 덱  (0) 2021.06.14
[백준] 1966 프린터 큐  (0) 2021.06.14
Comments