-
[java] 백준 알고리즘 10866번 덱 풀이알고리즘/백준 알고리즘 2018. 8. 6. 14:22
덱은 스택과 큐의 특징을 골고루 가지고 있다.
First In, First Out도 가능하고, First In, Last Out도 가능하다.
양방향으로 이동이 가능하다.
자바에서 덱을 제공해준다. 덱을 활용해 문제 해결.
* 풀이 소스
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677public class Baekjoon10866{static StringTokenizer st;public static void main(String[] args) throws IOException {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));st = new StringTokenizer(br.readLine());StringBuilder sb = new StringBuilder();Deque<Integer> deque = new ArrayDeque<>();int orderCount = Integer.parseInt(st.nextToken());for(int i=0; i<orderCount; i++) {st = new StringTokenizer(br.readLine());String order = st.nextToken();if(order.equals("push_front")) {deque.addFirst(Integer.parseInt(st.nextToken()));}else if(order.equals("push_back")) {deque.addLast(Integer.parseInt(st.nextToken()));}else if(order.equals("pop_front")){if(deque.isEmpty()) {sb.append("-1\n");}else {sb.append(deque.pollFirst()+"\n");}}else if(order.equals("pop_back")) {if(deque.isEmpty()) {sb.append("-1\n");}else {sb.append(deque.pollLast()+"\n");}}else if(order.equals("size")) {sb.append(deque.size()+"\n");}else if(order.equals("empty")) {if(deque.isEmpty()) {sb.append("1\n");}else {sb.append("0\n");}}else if(order.equals("front")) {if(deque.isEmpty()) {sb.append("-1\n");}else {sb.append(deque.getFirst()+"\n");}}else if(order.equals("back")) {if(deque.isEmpty()) {sb.append("-1\n");}else {sb.append(deque.getLast()+"\n");}}}bw.write(sb.toString());bw.flush();}}cs '알고리즘 > 백준 알고리즘' 카테고리의 다른 글
[java] 백준 알고리즘 1158번 조세퍼스 문제 풀이 (0) 2018.07.27 [java] 백준 알고리즘 11866번 조세퍼스 문제 0 풀이 (0) 2018.07.27 [java] 백준 알고리즘 10845번 큐 풀이 (0) 2018.07.25 [java] 백준 알고리즘 1094번 막대기 풀이 (0) 2018.07.24 [java] 백준 알고리즘 1520번 내리막 길 풀이 (0) 2018.07.23