문제
풀이
늘 하던 것과 동일한 유형이다
자세한 설명은 생략하겠다.
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 |