알고리즘/백준

[백준] 10866번 - 덱

땀두 2022. 3. 20. 12:07

 

Dequeue를 구현하는 문제이다. 간단히 if ~else를 이용하여 구현하였다.

 

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

public class p10866 {

	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st;
		Deque<String> dq = new ArrayDeque<>();

		int a = Integer.parseInt(br.readLine());

		for (int i = 0; i < a; i++) {
			String[] s = br.readLine().split(" ");
			if (s[0].equals("push_front")) {
				dq.addFirst(s[1]);
			} else if (s[0].equals("push_back")) {
				dq.addLast(s[1]);
			} else if (s[0].equals("pop_front")) {
				if (dq.size() != 0) {
					System.out.println(dq.peekFirst());
					dq.pollFirst();
				} else {
					System.out.println("-1");
				}
			} else if (s[0].equals("pop_back")) {
				if (dq.size() != 0) {
					System.out.println(dq.peekLast());
					dq.pollLast();
				} else {
					System.out.println("-1");
				}
			} else if (s[0].equals("size")) {
				System.out.println(dq.size());
			} else if (s[0].equals("empty")) {
				if (dq.isEmpty()) {
					System.out.println("1");
				} else {
					System.out.println("0");
				}
			} else if (s[0].equals("front")) {
				if (dq.isEmpty()) {
					System.out.println("-1");
				} else {
					System.out.println(dq.peekFirst());
				}
			} else if (s[0].equals("back")) {
				if (dq.isEmpty()) {
					System.out.println("-1");
				} else {
					System.out.println(dq.peekLast());
				}
			}
		}
	}
}