https://www.acmicpc.net/problem/10866
1. 풀이
자바의 ArrayDequeue를 이용하여 풀이를 해보았다.
이미 다 구현된 덱이 있어서 쉽게 풀이가 가능하다.
다음엔 덱을 직접 구현해 풀이를 해 볼 생각이다. 지금은 뭔가 시간이 아깝(?)...
2. 코드
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
// 덱
ArrayDeque<Integer> deque = new ArrayDeque<Integer>();
while(num-- > 0) {
String input = sc.next();
if(input.equals("push_front")) {
deque.offerFirst(sc.nextInt());
} else if(input.equals("push_back")) {
deque.offerLast(sc.nextInt());
} else if(input.equals("pop_front")) {
if(deque.isEmpty())
System.out.println(-1);
else
System.out.println(deque.pollFirst());
} else if(input.equals("pop_back")) {
if(deque.isEmpty())
System.out.println(-1);
else
System.out.println(deque.pollLast());
} else if(input.equals("size")) {
System.out.println(deque.size());
} else if(input.equals("empty")) {
if(deque.isEmpty())
System.out.println(1);
else
System.out.println(0);
} else if(input.equals("front")) {
if(deque.isEmpty())
System.out.println(-1);
else
System.out.println(deque.peekFirst());
} else if(input.equals("back")) {
if(deque.isEmpty())
System.out.println(-1);
else
System.out.println(deque.peekLast());
}
}
sc.close();
return;
}
}
'알고리즘 > 백준' 카테고리의 다른 글
[백준 10799] 쇠막대기 - 자바 (1) | 2020.04.26 |
---|---|
[백준 17413] 단어 뒤집기2 - 자바 (0) | 2020.04.25 |
[백준 1158] 요세푸스 문제 - 자바 (0) | 2020.04.25 |
[백준 10845] 큐 - 자바 (0) | 2020.04.25 |
[백준 1406] 에디터 - 자바 (0) | 2020.04.24 |
댓글