https://www.acmicpc.net/problem/10866
10866번: 덱
첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지
www.acmicpc.net
// 백준 10866번:덱
import java.util.ArrayDeque;
import java.util.Deque;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
Deque<Integer> deque = new ArrayDeque();
int n = scan.nextInt();
Integer pop = null;
for (int i = 0; i < n; i++) {
String command = scan.next();
switch(command) {
case "push_front":
int tmp1 = scan.nextInt();
deque.addFirst(tmp1);
break;
case "push_back":
int tmp2 = scan.nextInt();
deque.addLast(tmp2);
break;
case "pop_front":
pop = deque.poll();
if (pop == null) {
System.out.println("-1");
} else {
System.out.println(pop);
}
break;
case "pop_back":
pop = deque.pollLast();
if (pop == null) {
System.out.println("-1");
} else {
System.out.println(pop);
}
break;
case "size":
System.out.println(deque.size());
break;
case "empty":
if (deque.isEmpty()) {
System.out.println("1");
} else {
System.out.println("0");
}
break;
case "front":
if (deque.peekFirst() == null) {
System.out.println("-1");
} else {
System.out.println(deque.peekFirst());
}
break;
case "back":
if (deque.peekLast() == null) {
System.out.println("-1");
} else {
System.out.println(deque.peekLast());
}
break;
default:
System.out.println("존재하지 않는 명령어. 잘못 입력하심. 다시 입력 부탁");
break;
}
}
scan.close();
}
}
'알고리즘' 카테고리의 다른 글
[백준 BOJ][JAVA] 7569번: 토마토 (0) | 2022.02.04 |
---|---|
[백준 BOJ][JAVA] 2606번: 바이러스 (0) | 2022.01.30 |
[백준 BOJ][JAVA] 2164번: 카드2 (0) | 2022.01.28 |
[백준 BOJ][JAVA] 9012번: 괄호 (0) | 2022.01.22 |
[백준 BOJ][C언어] 10773번: 제로 (0) | 2022.01.22 |