728x90
출처
https://www.acmicpc.net/problem/10866
내 풀이
#include<iostream>
#include<deque>
using namespace std;
deque<int> dq;
string command = "";
int push_number = 0;
int N = 0; //명령어 수
int main()
{
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
cin >> N;
for (int i = 0; i < N; i++)
{
cin >> command;
if (command == "push_front")
{
cin >> push_number;
dq.push_front(push_number);
}
else if (command == "push_back")
{
cin >> push_number;
dq.push_back(push_number);
}
else if (command == "pop_front")
{
if (dq.empty()) cout << -1 << endl;
else
{
cout << dq.front() << endl;
dq.pop_front();
}
}
else if (command == "pop_back")
{
if (dq.empty()) cout << -1 << endl;
else
{
cout << dq.back() << endl;
dq.pop_back();
}
}
else if (command == "size")
{
cout << dq.size() << endl;
}
else if (command == "empty")
{
if (dq.empty()) cout << 1 << endl;
else cout << 0 << endl;
}
else if (command == "front")
{
if (dq.empty()) cout << -1 << endl;
else cout << dq.front() << endl;
}
else if (command == "back")
{
if (dq.empty()) cout << -1 << endl;
else cout << dq.back() << endl;
}
}
}
해설
데큐를 선언하고 나오는 명령에 따라 그대로 출력만 해주면 된다.
느낀점
처음 데큐에 대해 알게 되었다. 큐랑 벡터 말고도 필요할 때 활용할 수 있을 듯
'백준 코딩테스트 > 실버' 카테고리의 다른 글
10989) 수 정렬하기 3 (C++) (0) | 2022.05.07 |
---|---|
2751) 수 정렬하기 2 (C++) (0) | 2022.05.07 |
2164) 카드2 (C++) (0) | 2022.05.05 |
18258) 큐 2 (C++) (0) | 2022.05.04 |
1920) 수 찾기 (C++) (0) | 2022.05.01 |