-
https://www.acmicpc.net/problem/10866
10866번: 덱
첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지
www.acmicpc.net
#include <iostream> using namespace std; const int MAX = 100000; class bojDeque { private: int* dequeMem; int dequeFront, dequeTail; int max, dequeSize; public: bojDeque() : dequeFront(MAX), dequeTail(MAX), max((MAX * 2) + 1), dequeSize(0) { dequeMem = new int[(MAX * 2) + 1]; } ~bojDeque() { delete[] dequeMem; } void push_front(const int data); void push_back(const int data); int pop_front(); int pop_back(); int size(); bool empty(); int front(); int back(); }; void bojDeque::push_front(const int data) { dequeMem[--dequeFront] = data; dequeSize++; } void bojDeque::push_back(const int data) { dequeMem[dequeTail++] = data; dequeSize++; } int bojDeque::pop_front() { if (empty()) return -1; dequeSize--; return dequeMem[dequeFront++]; } int bojDeque::pop_back() { if (empty()) return -1; dequeSize--; return dequeMem[--dequeTail]; } int bojDeque::size() { return dequeSize; } bool bojDeque::empty() { return dequeSize == 0; } int bojDeque::front() { return empty() ? -1 : dequeMem[dequeFront]; } int bojDeque::back() { return empty() ? -1 : dequeMem[dequeTail - 1]; } int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int N; cin >> N; string order[8] = { "push_front", "push_back", "pop_front", "pop_back", "size", "empty", "front", "back" }; bojDeque bjDeque; for (int i = 0; i < N; i++) { string order; cin >> order; if (order == "push_front") { int data = 0; cin >> data; bjDeque.push_front(data); } else if (order == "push_back") { int data = 0; cin >> data; bjDeque.push_back(data); } else if (order == "pop_front") cout << bjDeque.pop_front() << "\n"; else if (order == "pop_back") cout << bjDeque.pop_back() << "\n"; else if (order == "size") cout << bjDeque.size() << "\n"; else if (order == "empty") cout << bjDeque.empty() << "\n"; else if (order == "front") cout << bjDeque.front() << "\n"; else if (order == "back") cout << bjDeque.back() << "\n"; } return 0; }
'코딩 테스트 > 백준' 카테고리의 다른 글
1158 요세푸스 문제 (0) 2022.02.14 10845 큐 (0) 2022.02.12 1406 에디터 (0) 2022.02.11 1874 스택 수열 (0) 2022.02.10 9012 괄호 (0) 2022.02.09