정수를 저장하는 큐를 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오.
명령은 총 여섯 가지이다.
첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 않은 명령이 주어지는 경우는 없다.
출력해야하는 명령이 주어질 때마다, 한 줄에 하나씩 출력한다.
/**
* baekjoon - 10845
* queue
*/
#include <iostream>
#include <queue>
#include <vector>
#include <sstream>
#include <string>
#define fio ios_base::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr)
using namespace std;
int main(){
//fio;
//input
queue<int> q;
string str;
int num;
int n; cin >> n;
for (int i = 0; i < n; i++){
cin >> str;
if (str == "push"){
cin >> num;
q.push(num);
}
if (str == "pop"){
if (q.empty()) cout << "-1\n";
else {
cout << q.front() << "\n";
q.pop();
}
}
if (str == "size"){
cout << q.size() << "\n";
}
if (str == "empty"){
cout << q.empty() << "\n";
}
if (str == "front"){
if (q.empty()) cout << "-1\n";
else cout << q.front() << "\n";
}
if (str == "back"){
if (q.empty()) cout << "-1\n";
else cout << q.back() << "\n";
}
}
return 0;
}
해당 문제는 큐의 기본 함수를 사용 및 정리를 하기 위해 푼 문제이다.
우선 큐(Queue)는 대표적인 FIFO 구조로 제일 먼저 넣은 데이터가 처음으로 빠져나오는 것을 알 수 있다. 큐에는 기본함수가 여러개 존재하는데 해당 문제에서 나오는 함수들이 자주 쓰이는 함수이다.
그 외에 것들도 다음과 같다.