덱의 기본 개념을 익히고 사용해보는 정도의 문제.
물론 효율이 좋은 코드는 아니지만... 개념익히는거에 이목을 두는걸로
#include <iostream>
#include <deque>
using namespace std;
deque<int> deq;
int main() {
int n;
cin >> n;
while (n--) {
char ch[15];
cin >> ch;
if (ch[0] == 'p' && ch[1] == 'u') {
int data;
cin >> data;
if (ch[5] == 'f') {
deq.push_front(data);
}
else {
deq.push_back(data);
}
}
else if (ch[0] == 'p' && ch[1] == 'o') {
int data;
if (ch[4] == 'f') {
if (deq.empty()) cout << "-1" << '\n';
else {
data = deq.front();
deq.pop_front();
cout << data << '\n';
}
}
else {
if (deq.empty()) cout << "-1" << '\n';
else {
data = deq.back();
deq.pop_back();
cout << data << '\n';
}
}
}
else if (ch[0] == 's') {
cout << deq.size() << '\n';
}
else if (ch[0] == 'e') {
if (deq.empty()) cout << '1' << '\n';
else cout << '0' << '\n';
}
else if (ch[0] == 'f') {
if (deq.empty()) cout << "-1" << '\n';
else cout << deq.front() << '\n';
}
else if (ch[0] == 'b') {
if (deq.empty()) cout << "-1" << '\n';
else cout << deq.back() << '\n';
}
}
return 0;
}
물론 효율이 좋은 코드는 아니지만... 개념익히는거에 이목을 두는걸로
#include <iostream>
#include <deque>
using namespace std;
deque<int> deq;
int main() {
int n;
cin >> n;
while (n--) {
char ch[15];
cin >> ch;
if (ch[0] == 'p' && ch[1] == 'u') {
int data;
cin >> data;
if (ch[5] == 'f') {
deq.push_front(data);
}
else {
deq.push_back(data);
}
}
else if (ch[0] == 'p' && ch[1] == 'o') {
int data;
if (ch[4] == 'f') {
if (deq.empty()) cout << "-1" << '\n';
else {
data = deq.front();
deq.pop_front();
cout << data << '\n';
}
}
else {
if (deq.empty()) cout << "-1" << '\n';
else {
data = deq.back();
deq.pop_back();
cout << data << '\n';
}
}
}
else if (ch[0] == 's') {
cout << deq.size() << '\n';
}
else if (ch[0] == 'e') {
if (deq.empty()) cout << '1' << '\n';
else cout << '0' << '\n';
}
else if (ch[0] == 'f') {
if (deq.empty()) cout << "-1" << '\n';
else cout << deq.front() << '\n';
}
else if (ch[0] == 'b') {
if (deq.empty()) cout << "-1" << '\n';
else cout << deq.back() << '\n';
}
}
return 0;
}
댓글
댓글 쓰기