Algorithm/덱
백준 10866 cpp // 덱 사용법
Mini_96
2023. 8. 18. 16:22
https://www.acmicpc.net/problem/10866
10866번: 덱
첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지
www.acmicpc.net
* 덱?
양방향으로 넣고 뺄수있는 큐를 말한다.
#include<bits/stdc++.h>
using namespace std;
int n;
deque<int> d;
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
cin >> n;
for (int i = 1; i <= n; ++i) {
string op = "";
cin >> op;
if (op == "push_front") {
int temp = 0;
cin >> temp;
d.push_front(temp);
}
else if (op == "push_back") {
int temp = 0;
cin >> temp;
d.push_back(temp);
}
else if (op == "pop_front") {
if (d.empty()) {
cout << "-1\n";
continue;
}
int temp = d.front();
cout << temp << "\n";
d.pop_front();
}
else if (op == "pop_back") {
if (d.empty()) {
cout << "-1\n";
continue;
}
int temp = d.back();
cout << temp << "\n";
d.pop_back();
}
else if (op == "size") {
cout << d.size() << "\n";
}
else if (op == "empty") {
cout << d.empty() << "\n";
}
else if (op == "front") {
if (d.empty()) cout << "-1\n";
else cout << d.front() <<"\n";
}
else if (op == "back") {
if (d.empty()) cout << "-1\n";
else cout << d.back() << "\n";
}
}
}