본문 바로가기
백준

백준 덱 - 10866번 : 덱

by 맴썰 2022. 3. 3.

https://www.acmicpc.net/problem/10866

 

10866번: 덱

첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지

www.acmicpc.net


import java.util.*;
import java.io.*;

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		int a = Integer.parseInt(br.readLine());
		Deque temp = new Deque();
		StringTokenizer st;
		StringBuilder sb = new StringBuilder("");
		for(int i=0; i<a; i++) {
			st = new StringTokenizer(br.readLine());
			String command =st.nextToken();
			if(command.equals("push_front")) {
				int num = Integer.parseInt(st.nextToken());
				temp.push_front(num);
			}
			else if(command.equals("push_back")){
				int num = Integer.parseInt(st.nextToken());
				temp.push_back(num);
			}
			else if(command.equals("pop_front")){
				sb.append(temp.pop_front()+"\n");
			}
			else if(command.equals("pop_back")){
				sb.append(temp.pop_back()+"\n");
			}
			else if(command.equals("size")) {
				sb.append(temp.size()+"\n");
			}
			else if(command.equals("empty")) {
				sb.append(temp.empty()+"\n");
			}
			else if(command.equals("front")) {
				sb.append(temp.front()+"\n");
			}
			else sb.append(temp.back()+"\n");
		}
		
		bw.write(sb+"");
		bw.close();
	}
	
}
class Deque{
	private int size = 0;
	ArrayList<Integer> al = new ArrayList<>();
	void push_front(int num) {
		al.add(0,num);
		size++;
	}
	void push_back(int num) {
		al.add(num);
		size++;
	}
	int pop_front() {
		if(size==0) return -1;
		size--;
		return al.remove(0);
	}
	int pop_back() {
		if(size==0) return -1;
		size--;
		return al.remove(al.size()-1);
	}
	int size() {
		return size;
	}
	int empty() {
		if(size==0) return 1;
		else return 0;
	}
	int front() {
		if(size==0) return -1;
		return al.get(0);
	}
	int back() {
		if(size==0) return -1;
		return al.get(al.size()-1);
	}
}

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

백준 스택 - 4949번 : 균형잡힌 세상  (0) 2022.03.03
백준 큐 - 11866번 : 요세푸스 문제 0  (1) 2022.03.03
백준 큐 - 10845번 : 큐  (0) 2022.03.03
백준 스택 - 10828번 : 스택  (0) 2022.03.03
백준 스택 - 9012번 : 괄호  (1) 2022.03.03