백준 문제풀이

10866. 덱 (자바, Java)

뮤츠 2022. 11. 5. 21:58

스택, 큐에 이어 덱 입문문제.

 

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

public class Main {

	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int n = Integer.parseInt(br.readLine());
		Deque<String> deque = new ArrayDeque();
		StringBuilder sb = new StringBuilder();
		
		for (int i=0; i<n; i++) {
			StringTokenizer st = new StringTokenizer(br.readLine()," ");
			String str = st.nextToken();
			if (str.equals("push_back")) {
				String str2 = st.nextToken();
				deque.offerLast(str2);
			} else if (str.equals("push_front")) {
				String str2 = st.nextToken();
				deque.offerFirst(str2);
			} else if (str.equals("front")) {				
				if (deque.isEmpty()) {
					sb.append("-1\n");
				} else {
					sb.append(deque.peekFirst() + "\n");
				}
			} else if (str.equals("back")) {
				if (deque.isEmpty()) {
					sb.append("-1\n");
				} else {
					sb.append(deque.peekLast() + "\n");
				}
			} else if (str.equals("size")) {
				sb.append(deque.size() + "\n");
			} else if (str.equals("empty")) {
				if (deque.isEmpty()) {
					sb.append("1\n");
				} else {
					sb.append("0\n");
				}
			} else if (str.equals("pop_front")) {
				if (deque.isEmpty()) {
					sb.append("-1\n");
				} else {
					sb.append(deque.pollFirst()+"\n");
				}
			} else if (str.equals("pop_back")) {
				if (deque.isEmpty()) {
					sb.append("-1\n");
				} else {
					sb.append(deque.pollLast()+"\n");
				}
			}
		}
		System.out.println(sb);
	}
}

'백준 문제풀이' 카테고리의 다른 글

10799. 쇠막대기 (자바, Java)  (0) 2022.11.20
17413. 단어 뒤집기 2 (자바, Java)  (0) 2022.11.20
1158. 요세푸스 문제 (자바, Java)  (0) 2022.11.05
10845. 큐 (자바, Java)  (0) 2022.11.05
1406. 에디터 (자바, Java)  (0) 2022.11.05