문제 : https://www.acmicpc.net/problem/10866
[알고리즘풀이]
Deque(덱) 자료구조를 이용한 문제로 입력된 명령을 그대로 수행하면 된다.
Deque(덱) 자료구조 설명 : https://travelbeeee.tistory.com/60?category=807507
#include<iostream>
#include<string>
#include<deque>
using namespace std;
int main(void) {
ios::sync_with_stdio(false);
cin.tie(0);
deque<int> dq;
string input;
int n;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> input;
if (input == "push_front") {
int temp;
cin >> temp;
dq.push_front(temp);
}
else if (input == "push_back") {
int temp;
cin >> temp;
dq.push_back(temp);
}
else if (input == "pop_front") {
if (dq.empty())
cout << "-1\n";
else {
cout << dq.front() << '\n';
dq.pop_front();
}
}
else if (input == "pop_back") {
if (dq.empty())
cout << "-1\n";
else {
cout << dq.back() << '\n';
dq.pop_back();
}
}
else if (input == "size") {
cout << dq.size() << '\n';
}
else if (input == "empty") {
if (dq.empty())
cout << "1\n";
else
cout << "0\n";
}
else if (input == "front") {
if (dq.empty())
cout << "-1\n";
else
cout << dq.front() << '\n';
}
else {
if (dq.empty())
cout << "-1\n";
else
cout << dq.back() << '\n';
}
}
}
'Problem Solving > BOJ' 카테고리의 다른 글
[BOJ] 5430 - Integer Lists (0) | 2019.09.18 |
---|---|
[BOJ] 1021 - 회전하는 큐 (0) | 2019.09.17 |
[BOJ] 1966 - Printer Queue (0) | 2019.09.17 |
[BOJ] 11866 - 조세퍼스 문제 0 (0) | 2019.09.17 |
[BOJ] 2164 - 카드2 (0) | 2019.09.17 |