10866_덱(C++)
#include <iostream>
using namespace std;
struct Deque
{
int deque[10000];
int begin = 5000;
int end = 5001;
void push_front(int data) {
deque[begin] = data;
begin--;
}
void push_back(int data) {
deque[end] = data;
end++;
}
void pop_front() {
if (!empty()) {
cout << deque[begin + 1] << '\n';
begin++;
}
else cout << -1 << '\n';
}
void pop_back() {
if (!empty()) {
cout << deque[end-1] << '\n';
end--;
}
else cout << -1 << '\n';
}
void size() {
cout << end - begin -1 << '\n';
}
bool empty() {
if (begin + 1 == end) return 1;
else return 0;
}
void front() {
if (!empty()) cout << deque[begin + 1] << '\n';
else cout << -1 << '\n';
}
void back() {
if (!empty()) cout << deque[end - 1] << '\n';
else cout << -1 << '\n';
}
};
int main() {
int N;
string command;
Deque mine;
cin >> N;
for (int i = 0; i < N; i++) {
cin >> command;
if (command == "push_front") {
int k = 0;
cin >> k;
mine.push_front(k);
}
else if(command == "push_back") {
int k = 0;
cin >> k;
mine.push_back(k);
}
else if (command == "pop_front") {
mine.pop_front();
}
else if (command == "pop_back") {
mine.pop_back();
}
else if (command == "size") {
mine.size();
}
else if (command == "empty") {
cout << mine.empty() << '\n';
}
else if (command == "front") {
mine.front();
}
else if (command == "back") {
mine.back();
}
}
}
덱 설명 참고:
https://velog.io/@kimeunseo58/%EB%8D%B1
Author And Source
이 문제에 관하여(10866_덱(C++)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kimeunseo58/10866덱C저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)