알고리즘/백준
[백준] 10866번 - 덱
땀두
2022. 3. 20. 12:07



Dequeue를 구현하는 문제이다. 간단히 if ~else를 이용하여 구현하였다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayDeque;
import java.util.Deque;
import java.util.StringTokenizer;
public class p10866 {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
Deque<String> dq = new ArrayDeque<>();
int a = Integer.parseInt(br.readLine());
for (int i = 0; i < a; i++) {
String[] s = br.readLine().split(" ");
if (s[0].equals("push_front")) {
dq.addFirst(s[1]);
} else if (s[0].equals("push_back")) {
dq.addLast(s[1]);
} else if (s[0].equals("pop_front")) {
if (dq.size() != 0) {
System.out.println(dq.peekFirst());
dq.pollFirst();
} else {
System.out.println("-1");
}
} else if (s[0].equals("pop_back")) {
if (dq.size() != 0) {
System.out.println(dq.peekLast());
dq.pollLast();
} else {
System.out.println("-1");
}
} else if (s[0].equals("size")) {
System.out.println(dq.size());
} else if (s[0].equals("empty")) {
if (dq.isEmpty()) {
System.out.println("1");
} else {
System.out.println("0");
}
} else if (s[0].equals("front")) {
if (dq.isEmpty()) {
System.out.println("-1");
} else {
System.out.println(dq.peekFirst());
}
} else if (s[0].equals("back")) {
if (dq.isEmpty()) {
System.out.println("-1");
} else {
System.out.println(dq.peekLast());
}
}
}
}
}