- [ 장르 ] Deque
- [ 문제 ]
- My Code
#include <iostream>
#include <deque>
using namespace std;
int main()
{
cin.tie(NULL); cout.tie(NULL); ios_base::sync_with_stdio(false);
int opcnt,i = 0,data;
string str;
deque<int> que;
cin >> opcnt;
while (i < opcnt)
{
cin >> str;
if (!str.compare("push_back"))
{
cin >> data;
que.push_back(data);
}
else if (!str.compare("push_front"))
{
cin >> data;
que.push_front(data);
}
else if (!str.compare("front"))
{
if (que.empty()) cout << -1 << '\n';
else cout << que.front() << '\n';
}
else if (!str.compare("back"))
{
if (que.empty()) cout << -1 << '\n';
else cout << que.back() << '\n';
}
else if (!str.compare("pop_front"))
{
if (que.empty()) cout << -1 << '\n';
else
{
cout << que.front() << '\n';
que.pop_front();
}
}
else if (!str.compare("pop_back"))
{
if (que.empty()) cout << -1 << '\n';
else
{
cout << que.back() << '\n';
que.pop_back();
}
}
else if (!str.compare("size"))
cout << que.size() << '\n';
else
cout << que.empty() << '\n';
i++;
}
return 0;
}
[ CheckPoint ]
- 기본적인 Deque기능문제이다. C++은 Deque Container가 있기 때문에 deque연산을 쉽게 할 수 있다.
- Deque는 일반 queue와 달리 queue는 FIFO( First In First Out )으로
들어가고 나가는 방향이 하나로, 보통 front, rear(back)으로 연산을 진행한다. 먼저 들어간 정보가 나올때도 가장 먼저 나간다.- Deque는 들어가고 나가는 방향이 양방향이다. front,back 두 방향에서
연산이 가능하다.
728x90
반응형
'Algorithm Practice > [ Baekjoon ]' 카테고리의 다른 글
[Baekjoon][#1920] 수 찾기 (0) | 2020.09.25 |
---|---|
[Beakjoon][#1021] 회전하는 큐 (0) | 2020.09.25 |
[Baekjoon][#11729] 하노이 탑 이동순서 (0) | 2020.09.23 |
[Baekjoon][#18258] 큐 2 (0) | 2020.09.22 |
[Baekjoon][#1991] 트리순회 (0) | 2020.09.21 |