hahn

단계별로 풀어보기(큐, 덱 - 덱) 본문

코딩테스트 연습/백준(JAVA)

단계별로 풀어보기(큐, 덱 - 덱)

hahn 2021. 9. 18. 10:51
728x90
반응형

10866번: 덱 (acmicpc.net)

 

10866번: 덱

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

www.acmicpc.net

http://boj.kr/23c6c469c1844569bbd8a306b560b32d

 

공유 소스 보기

 

www.acmicpc.net

더보기
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayDeque;
import java.util.Deque;
import java.util.StringTokenizer;

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 commandCount =  Integer.parseInt(br.readLine());
		
		StringTokenizer st;
		
		Deque<String> deque = new ArrayDeque<String>();
		
		for(int i = 0; i < commandCount; i++) {
			
			st = new StringTokenizer(br.readLine(), " ");
			
			
			switch(st.nextToken()) {
			
			case("push_front") :
				
				deque.addFirst(st.nextToken());
				break;
				
			case("push_back") :
				
				deque.addLast(st.nextToken());
				break;
			
			case("pop_back") :
				
				bw.write((deque.peekLast() == null ? "-1" : deque.removeLast()) + "\n");
				break;
			
			case("size") :
				
				bw.write(deque.size() + "\n");
				break;
			
			case("front") :
				
				bw.write((deque.peekFirst() == null ? "-1" : deque.getFirst()) + "\n");
				break;
			
			case("back") :
				
				bw.write((deque.peekLast() == null ? "-1" : deque.getLast()) + "\n");
				break;
			
			case("pop_front") :
				
				bw.write((deque.peekFirst() == null ? "-1" : deque.removeFirst()) + "\n");
				break;
				
			case("empty") :
				
				bw.write((deque.isEmpty() ? "1" : "0") + "\n");
				break;
				
			}
			
		}
		
		bw.close();
        
    }
    
}

 

리스트 이용해서 구현하려다가

 

아직 실력이 부족해서 그런가 도저히 못하겠어서

 

라이브러리 사용했다

 

아주 편하다...

728x90
반응형