반응형
import java.io.*;
import java.util.ArrayDeque;
class MyDeque extends ArrayDeque<Integer>{
StringBuilder sb;
MyDeque(){
super();
sb = new StringBuilder();
}
void sendMethod(String[] strArr){
switch (strArr[0]) {
case "push_front"://정수 X를 덱의 앞에 넣는다.
addFirst(Integer.parseInt(strArr[1]));
break;
case "push_back": //정수 X를 덱의 뒤에 넣는다.
addLast(Integer.parseInt(strArr[1]));
break;
case "pop_front":
Integer f=pollFirst();
sb.append(f!=null?f:-1);
sb.append("\n");
break;
case "pop_back":
Integer b=pollLast();
sb.append(b!=null?b:-1);
sb.append("\n");
break;
case "size":
sb.append(size());
sb.append("\n");
break;
case "empty": //덱이 비어있으면 1을, 아니면 0을 출력한다.
sb.append(isEmpty()?1:0);
sb.append("\n");
break;
case "front": //덱의 가장 앞에 있는 정수를 출력한다. 만약 덱에 들어있는 정수가 없는 경우에는 -1을 출력한다.
sb.append(!isEmpty()?getFirst():-1);
sb.append("\n");
break;
case "back": //덱의 가장 뒤에 있는 정수를 출력한다. 만약 덱에 들어있는 정수가 없는 경우에는 -1을 출력한다.
sb.append(!isEmpty()?getLast():-1);
sb.append("\n");
break;
}
}
@Override
public String toString() {
return sb.toString();
}
}
public class Main {
public static void main(String[] args) throws Exception{
int N=0;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
N = Integer.parseInt(br.readLine());
MyDeque myStack=new MyDeque();
for(int i=0;i<N;i++){
String[]strArr=br.readLine().split(" ");
myStack.sendMethod(strArr);
}
System.out.println(myStack.toString());
}
}
반응형
'프로그래밍 > 알고리즘 풀이' 카테고리의 다른 글
[알고리즘] 백준 1181번: 단어정렬 JAVA (0) | 2021.01.07 |
---|---|
[알고리즘] 백준 1026번: 보물 JAVA (0) | 2021.01.03 |
[알고리즘] 백준 10828번: 스택 JAVA (0) | 2020.12.25 |
[알고리즘] 백준 10815번: 숫자 카드 JAVA (0) | 2020.12.21 |
[알고리즘] 백준 2751번: 수 정렬하기 2 Java (0) | 2020.10.26 |
댓글