거북이의 IT 공부
[백준 10866] 덱 - C++ 본문
문제
https://www.acmicpc.net/problem/10866
10866번: 덱
첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 않은 명령이 주어지는 경우는 없다.
www.acmicpc.net
나의 코드 - C++
: STL deque를 사용하면 너무 쉬운 문제이므로 직접 구현해보았다.
덱에 관한 정보는 따로 설명해두었다.
https://bunnnybin.tistory.com/5
[C++] STL 벡터(vector), 리스트(list), 덱(deque) 그리고 반복자
본 글은 씹어먹는 C++(https://modoocode.com/223)를 참고하여 여기서 내가 모르고 새로운 부분을 정리하는 용도로 작성했다. 나중에 c++ 문제 풀 때 또 모르면 참고하려고!!! 반복자 : 반복자는 컨테이너에 itera..
bunnnybin.tistory.com
#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