반응형

스택,큐의 기본문제들과 같은 패턴으로
덱을 잘 이해했는 지에 대한 개념확인 문제다
#include <iostream>
#include <deque>
#include <string>
using namespace std;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int n,x;
string s;
cin >> n;
deque<int> d;
for(int tmp=0; tmp<n; tmp++)
{
cin >> s;
if(s == "push_front")
{
cin >> x;
d.push_front(x);
}
if(s == "push_back")
{
cin >> x;
d.push_back(x);
}
if(s == "pop_front")
{
if(d.size() == 0) cout << -1 << "\n";
else
{
cout << d.front() << "\n";
d.pop_front();
}
}
if(s == "pop_back")
{
if(d.size() == 0) cout << -1 << "\n";
else
{
cout << d.back() << "\n";
d.pop_back();
}
}
if(s == "size")
{
cout << d.size() << "\n";
}
if(s == "empty")
{
if(d.empty()) cout << 1 << "\n";
else cout << 0 << "\n";
}
if(s == "front")
{
if(d.size() == 0) cout << -1 << "\n";
else cout << d.front() << "\n";
}
if(s == "back")
{
if(d.size() == 0) cout << -1 << "\n";
else cout << d.back() << "\n";
}
}
return 0;
}
적절한 위치에 적절한 STL deque의 함수를 사용해주면
쉽게 해결할 수 있다
마찬가지로 push_front / push_back 에서 X를 입력받으려면
입력받은 문자열이 push_front / push_back일 때
그 다음에 X를 입력받는 식으로 구현해주면 된다
반응형
'algorithm > 덱' 카테고리의 다른 글
| [algorithm] 백준 1021번 회전하는 큐 (1) | 2026.01.17 |
|---|
