주소 : https://www.acmicpc.net/problem/10866
10866번: 덱
첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지
www.acmicpc.net



소스 코드 :
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <deque>
using namespace std;
int main()
{
deque<int> d;
int N,num;
cin >> N;
string order;
while (N != 0)
{
cin >> order;
if (order == "push_back")
{
cin >> num;
d.push_back(num);
}
else if (order == "push_front")
{
cin >> num;
d.push_front(num);
}
else if (order == "pop_front")
{
if (d.empty())
cout << -1 << '\n';
else
{
cout << d.front() << '\n';
d.pop_front();
}
}
else if (order == "pop_back")
{
if (d.empty())
cout << -1 << '\n';
else
{
cout << d.back() << '\n';
d.pop_back();
}
}
else if (order == "size")
cout << d.size() << '\n';
else if (order == "empty")
cout << d.empty() << '\n';
else if (order == "front")
{
if (d.empty())
cout << -1 << '\n';
else
cout << d.front() << '\n';
}
else if (order == "back")
{
if (d.empty())
cout << -1 << '\n';
else
cout << d.back() << '\n';
}
N--;
}
}
마무리 : C++에서는 stl에서 덱이 있기 때문에 이를 이용하여 코드를 짰다. 덱의 가장 기본적인 문제로 문제의 조건에 맞게 입력을 비교하여 덱을 이용해주면 된다.
'백준 > C++' 카테고리의 다른 글
백준 1966번 : 프린터 큐 [C++] (0) | 2022.08.22 |
---|---|
백준 1929번 : 소수 구하기 [C++] (0) | 2022.08.18 |
백준 9012번 : 괄호 [C++] (0) | 2022.08.15 |
백준 4949번 : 균형잡힌 세상 [C++] (0) | 2022.08.15 |
백준 2839번 : 설탕 배달 [C++] (0) | 2022.08.15 |