문제 링크 : https://www.acmicpc.net/problem/10866
풀이
Deque의 다양한 메서드들을 사용하는 문제이다. 실버 4 문제치곤 전혀 어렵지 않은 문제이다.
하지만 예외 처리해줘야 할게 꽤 있고, 반복적인 코드들이 많아 실수하기는 쉬운 것 같다.
#include <iostream>
#include <deque>
using namespace std;
deque<int> D;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int n;
cin >> n;
while(n--){
string s;
cin >> s;
if(s == "push_back"){
int i;
cin >> i;
D.push_back(i);
}else if(s == "push_front"){
int i;
cin >> i;
D.push_front(i);
}else if(s == "pop_back"){
if(D.empty()) cout << -1 << "\n";
else{
int i;
i = D.back();
D.pop_back();
cout << i << "\n";
}
}else if(s == "pop_front"){
if(D.empty()) cout << -1 << "\n";
else{
int i;
i = D.front();
D.pop_front();
cout << i << "\n";
}
}else if(s == "size"){
cout << D.size() << "\n";
}else if(s == "empty"){
cout << D.empty() << "\n";
}else if(s == "front"){
if(D.empty()) cout << -1 << "\n";
else cout << D.front() << "\n";
}else{ // back
if(D.empty()) cout << -1 << "\n";
else cout << D.back() << "\n";
}
}
}
'알고리즘 > 알고리즘 문제 풀이' 카테고리의 다른 글
(C++) 백준 1021번 - 회전하는 큐 (0) | 2023.03.22 |
---|---|
(C++) 백준 4949번 - 균형잡힌 세상 (0) | 2023.03.22 |
(C++) 백준 10845번 - 큐 (0) | 2023.03.21 |
(C++) 백준 2841번 - 외계인의 기타 연주 (0) | 2023.03.21 |
(C++) 백준 2493번 - 탑 (0) | 2023.03.17 |