http://acmicpc.net/problem/10866
{코드}
#include <iostream>
#include <deque>
using namespace std;
int main(void)
{
ios::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
int n, tmp;
deque<int> dq;
string op;
cin >> n;
while (n--)
{
cin >> op;
if (op == "push_front")
{
cin >> tmp;
dq.push_front(tmp);
}
else if (op == "push_back")
{
cin >> tmp;
dq.push_back(tmp);
}
else if (op == "pop_front")
{
if (dq.empty()) cout << -1 << '\n';
else
{
cout << dq.front() << '\n';
dq.pop_front();
}
}
else if (op == "pop_back")
{
if (dq.empty()) cout << -1 << '\n';
else
{
cout << dq.back() << '\n';
dq.pop_back();
}
}
else if (op == "size")
{
cout << dq.size() << '\n';
}
else if (op == "empty")
{
cout << dq.empty() << '\n';
}
else if (op == "front")
{
if (dq.empty()) cout << -1 << '\n';
else cout << dq.front() << '\n';
}
else if (op == "back")
{
if (dq.empty()) cout << -1 << '\n';
else cout << dq.back() << '\n';
}
}
return 0;
}
{설명}
이 문제는 C++의 deque 라이브러리를 통해 손쉽게 구성할 수 있습니다.
구현해야하는 모든 커맨드가 이미 구현되어 있기 때문에 그대로 사용하면 되며 pop기능과 front/back기능은 덱에 아무런 원소가 없을 경우 에러가 나기 때문에 덱이 비어있는지 아닌지를 empty 메소드를 통해 먼저 파악한 후 수행합니다.
'알고리즘 공부 > BOJ백준 풀이' 카테고리의 다른 글
[백준 19942번-파이썬] 다이어트 (0) | 2021.05.08 |
---|---|
[백준 19941번-파이썬] 햄버거 분배 (0) | 2021.05.08 |
[백준 10845번-C++] 큐 (0) | 2021.05.07 |
[백준 1158번-C++] 요세푸스 문제 (0) | 2021.05.07 |
[백준 1406번-C++] 에디터 (0) | 2021.05.07 |