알고리즘 분류
자료 구조
큐
문제 해결 아이디어
vector를 이용하여 큐를 구현하면서 빠른 시간 초과를 요구하기에, 시간을 잡아먹는 empty()부분을
직접 구현해야 한다.
코드
#include <iostream>
#include <vector>
using namespace std;
#define EMPTY 111111
int n;
vector<int> queue;
int check = 0;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
cin >> n;
string s;
int num;
while (n--)
{
cin >> s;
if (s == "push")
{
cin >> num;
queue.push_back(num);
}
else if (s == "pop")
{
if (queue.size() - check == 0) cout << "-1" << '\n';
else
{
cout << queue[check] << '\n';
queue[check] = EMPTY;
check++;
}
}
else if (s == "size")
{
cout << queue.size() - check << '\n';
}
else if (s == "empty")
{
if (queue.size() - check == 0) cout << 1 << '\n';
else cout << 0 << '\n';
}
else if (s == "front")
{
if (queue.size() - check == 0) cout << "-1" << '\n';
else cout << queue[check] << '\n';
}
else if (s == "back")
{
if (queue.size() - check == 0) cout << "-1" << '\n';
else cout << queue.back() << '\n';
}
}
}
'Algorithm > 스택과 큐' 카테고리의 다른 글
백준 카드2(2164) C++ 풀이 (0) | 2023.01.30 |
---|---|
백준 큐(10845) C++ 풀이 (0) | 2023.01.30 |
백준 히스토그램에서 가장 큰 직사각형(6549) C++ 풀이 (0) | 2023.01.30 |
백준 오아시스 재결합(3015) C++ 풀이 (0) | 2023.01.30 |
백준 오큰수(17298) C++ 풀이 (0) | 2023.01.28 |