728x90
🏆 목차.
🛒 문제
🎨 코드
#include<iostream>
#include<string>
#include<deque>
using namespace std;
int main()
{
int n;
cin >> n;
deque<int> deq;
while (n--)
{
string str;
cin >> str;
if (str == "push_back")
{
int value;
cin >> value;
deq.push_back(value);
}
else if (str == "push_front")
{
int value;
cin >> value;
deq.push_front(value);
}
else if (str == "front")
{
if (deq.empty())
cout << -1 << '\n';
else
cout << deq.front() << '\n';
}
else if (str == "back")
{
if (deq.empty())
cout << -1 << '\n';
else
cout << deq.back() << '\n';
}
else if (str == "size")
{
cout << deq.size() << '\n';
}
else if (str == "pop_front")
{
if (deq.empty())
cout << -1 << '\n';
else
{
cout << deq.front() << '\n';
deq.pop_front();
}
}
else if (str == "pop_back")
{
if (deq.empty())
cout << -1 << '\n';
else
{
cout << deq.back() << '\n';
deq.pop_back();
}
}
else if (str == "empty")
{
if (deq.empty())
cout << 1 << '\n';
else
cout << 0 << '\n';
}
}
}
🎯 풀이
문제 덱은 Deque의 기능을 다뤄보는 문제입니다.
Deque는 Queue와 Stack의 특징을 모두 가지고 있는 데이터 타입입니다.
Stack은 FILO(First-In-Last-Out)으로 먼저 들어온 데이터가 가장 마지막에 나가고,
Queue는 FIFO(First-In-First-Out)으로 먼저 들어온 데이터가 가장 먼저 나갑니다.
Deque는 양 옆으로 데이터의 삽입, 삭제가 가능해 두 데이터 타입의 특징을 다 가지고 있다고 볼 수 있습니다.
728x90
'코딩테스트' 카테고리의 다른 글
[C++] 백준 1676번 : 팩토리얼 0의 개수 (0) | 2023.10.04 |
---|---|
[C++][Stack] 백준 10799번 : 쇠막대기 (1) | 2023.10.03 |
[C++][Queue] 백준 1158번 : 요세푸스 문제 (0) | 2023.10.02 |
[C++][Queue] 백준 10845번 : 큐 (0) | 2023.10.02 |
[C++][Stack] 백준 17413번 : 단어 뒤집기 2 (0) | 2023.09.30 |