본문 바로가기
알고리즘 & 자료구조/백준

백준 10866

by 신재권 2021. 8. 7.
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.StringTokenizer;


public class Main10866 {
	
	public static ArrayList<Integer> deque = new ArrayList<Integer>();
	
	public static void push_front(int num){
		deque.add(0, num); // list의 첫번째에 추가
	}
	
	public static void push_back(int num){
		deque.add(num); // list의 마지막에 추가
	}
	
	public static int pop_front(){
		if(empty() == 1){ //list가 비어있다면 
			return -1;
		}else{
			return deque.remove(0); //list의 첫번째 제거
		}
	}
	
	public static int pop_back(){
		if(empty() == 1){ //list가 비어있다면 
			return -1;
		}else{
			return deque.remove(deque.size()-1); //list의 마지막 제거
		}
	}
	
	public static int size(){
		return deque.size(); 
	}
	
	public static int empty(){
		if(deque.size() == 0){
			return 1;
		}else{
			return 0;
		}
	}

	public static int front(){
		if(empty() == 1){ // list가 비어있다면
			return -1;
		}
		return deque.get(0);  // list의 첫번째 원소 반환 
	}
	
	public static int back(){
		if(empty() == 1){ // list가 비어있다면
			return -1;
		}
		return deque.get(deque.size()-1);  // list의 마지막 원소 반환
	}
	
	public static void main(String[] args) throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		StringTokenizer st;
		StringBuilder sb = new StringBuilder();
		
		int N = Integer.parseInt(br.readLine()); // 명령의 수 입력
		for(int i=0; i<N; i++){
			String input = br.readLine(); //명령어 입력 
			if(input.contains("push_front")){
				st = new StringTokenizer(input);
				st.nextToken(); // 명령어 제거
				push_front(Integer.parseInt(st.nextToken())); //숫자 입력
			}else if(input.contains("push_back")){
				st = new StringTokenizer(input);
				st.nextToken(); // 명령어 제거
				push_back(Integer.parseInt(st.nextToken())); //숫자 입력
			}else if(input.equals("pop_front")){
				sb.append(pop_front()).append("\n");
			}else if(input.equals("pop_back")){
				sb.append(pop_back()).append("\n");
			}else if(input.equals("size")){
				sb.append(size()).append("\n");
			}else if(input.equals("empty")){
				sb.append(empty()).append("\n");
			}else if(input.equals("front")){
				sb.append(front()).append("\n");
			}else if(input.equals("back")){
				sb.append(back()).append("\n");
			}
		}
		bw.write(sb.toString());
		bw.close();
		br.close();
		
	}

}

'알고리즘 & 자료구조 > 백준' 카테고리의 다른 글

백준 10799  (0) 2021.08.09
백준 17413  (0) 2021.08.09
백준 1158  (0) 2021.08.07
백준 10845  (0) 2021.08.06
백준 1406  (0) 2021.08.05