Baekjoon Online Judge - 10866
Review
- 이전에 풀었던 큐 문제를 수정해서 푼 문제.
- 맞게 푼 것 같은데 push_back()을 여러 번 반복할 때 제대로 출력이 되지 않음.
- 뭐 놓친 거 있나 싶어서 구글링 했는데 맞게 짠 것 같아서 당황… ㅡㅡ;;
- 맞왜틀의 늪에 빠져 이것저것 고쳐봤는데 알고 보니 또 입출력 문제였음.
- Scanner 사용하니 제대로 출력이 된다.
Code (JAVA)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
| import java.util.*;
public class Main { public static void main(String args[]){ Scanner sc=new Scanner(System.in); int n=sc.nextInt(); Deque deque = new Deque(n); for(int i=0;i<n;i++){ String s=sc.next(); if(s.equals("push_front")){ int tmp=sc.nextInt(); deque.push_front(tmp); } else if(s.equals("push_back")){ int tmp=sc.nextInt(); deque.push_back(tmp); } else if(s.equals("pop_front")) System.out.println(deque.pop_front()); else if(s.equals("pop_back")) System.out.println(deque.pop_back()); else if(s.equals("size")) System.out.println(deque.size()); else if(s.equals("empty")) System.out.println(deque.empty()); else if(s.equals("front")) System.out.println(deque.front()); else if(s.equals("back")) System.out.println(deque.back()); } sc.close(); } static class Deque { private int[] array; private int rear; private int item; public Deque(int size) { rear = -1; array = new int[size]; } public void push_front(int item) { rear++; for(int i = rear; i > 0; i--) { array[i] = array[i-1]; } array[0] = item; } public void push_back(int item) { rear++; array[rear] = item; } public int pop_front() { if (rear==-1) { return -1; } else { item = array[0]; for (int i = 0; i < rear; i++) { array[i] = array[i+1]; } rear--; return item; } } public int pop_back() { if (rear==-1) { return -1; } else { item = array[rear]; rear--; return item; } } public int size() { return rear+1; } public int empty() { if(rear==-1) { return 1; } else { return 0; } } public int front() { if(rear==-1) { return -1; } return array[0]; } public int back() { if(rear==-1) { return -1; } return array[rear]; } } }
|