본문 바로가기
백준

백준 28279: 덱 2(java)

by unhyepnhj 2024. 7. 16.

문제


풀이

 

늘 하던 것과 동일한 유형이다

자세한 설명은 생략하겠다.

BufferedReader로 입력받아 StringTokenizer로 분리하고 cmd에 따라 switch문으로 분리해 준 다음 별도의 덱 구현 없이 JDK 제공 라이브러리 덱을 이용해 풀이하였다.

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

public class Main {
	public static void main(String[] args) throws IOException{
		BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st;
		Deque<Integer> deque=new LinkedList<>();
		StringBuilder sb=new StringBuilder();
		
		int N=Integer.parseInt(br.readLine());
		for(int i=0; i<N; i++) {
			st=new StringTokenizer(br.readLine());
			int cmd=Integer.parseInt(st.nextToken());
			int x;
			
			switch(cmd) {
			case 1:
				x=Integer.parseInt(st.nextToken());
				deque.addFirst(x);
				break;
			case 2:
				x=Integer.parseInt(st.nextToken());
				deque.addLast(x);
				break;
			case 3:
				if(deque.isEmpty())
					System.out.println(-1);
				else 
					System.out.println(deque.removeFirst());
				break;
			case 4:
				if(deque.isEmpty())
					System.out.println(-1);
				else 
					System.out.println(deque.removeLast());
				break;
			case 5:
				System.out.println(deque.size());
				break;
			case 6:
				if(deque.isEmpty())
					System.out.println(1);
				else
					System.out.println(0);
				break;
			case 7:
				if(deque.isEmpty())
					System.out.println(-1);
				else 
					System.out.println(deque.getFirst());
				break;
			case 8:
				if(deque.isEmpty())
					System.out.println(-1);
				else 
					System.out.println(deque.getLast());
				break;
			default:
				break;
			}
		}
	}
}

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

백준 1158: 요세푸스 문제(java)  (0) 2024.07.17
백준 2346: 풍선 터뜨리기(java)  (0) 2024.07.16
백준 11866: 요세푸스 문제 0(java)  (0) 2024.07.16
백준 2164: 카드 2(java)  (0) 2024.07.16
백준 18258: 큐 2(java)  (0) 2024.07.15