거북이의 IT 공부
[백준 10866] 덱 - C++ 본문
문제
https://www.acmicpc.net/problem/10866
나의 코드 - C++
: STL deque를 사용하면 너무 쉬운 문제이므로 직접 구현해보았다.
덱에 관한 정보는 따로 설명해두었다.
https://bunnnybin.tistory.com/5
#include#include using namespace std; const int MX = 1000005; int dat[2 * MX + 1]; int head = MX, tail = MX; int empty(int dat[]) { if (head == tail) return 1; else return 0; } void push_front(int dat[], int data) { dat[--head] = data; } void push_back(int dat[], int data) { dat[tail++] = data; } int pop_front(int dat[]) { if (empty(dat)) return -1; return dat[head++]; } int pop_back(int dat[]) { if (empty(dat)) return -1; return dat[--tail]; } int size(int dat[]) { return tail - head; } int front(int dat[]) { if (empty(dat)) return - 1; return dat[head]; } int back(int dat[]) { if (empty(dat)) return -1; return dat[tail - 1]; } int main() { int num; cin >> num; for (int i = 0; i < num; i++) { string com; cin >> com; if (com == "push_front") { int com_end; cin >> com_end; push_front(dat, com_end); } else if (com == "push_back") { int com_end; cin >> com_end; push_back(dat, com_end); } else if (com == "pop_front") { cout << pop_front(dat) << '\n'; } else if (com == "pop_back") { cout << pop_back(dat) << '\n'; } else if (com == "size") { cout << size(dat) << '\n'; } else if (com == "empty") { cout << empty(dat) << '\n'; } else if (com == "front") { cout << front(dat) << '\n'; } else if (com == "back") { cout << back(dat) << '\n'; } } }
'Baekjoon' 카테고리의 다른 글
[백준 2504] 괄호의 값 - C++ / 알고리즘 '스택' (0) | 2020.04.10 |
---|---|
[백준 9012] 괄호 - C++ / 알고리즘 '스택' (0) | 2020.04.09 |
[백준 10845] 큐 - C/C++ (0) | 2020.04.09 |
RE. [백준 6198] 옥상 정원 꾸미기 - C++ / 알고리즘 monotone stack (0) | 2020.04.04 |
[백준 2493] 탑 - C++ / 알고리즘 '스택' (0) | 2020.04.03 |
Comments