정수를 저장하는 큐를 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오.
문제 분류
자료 구조
큐
큐를 구현하는 문제이다.
큐의 pop
, front
, back
연산시 비어있는지 if
문으로 체크하는 것에 유의하면 된다.
C++의 STL을 이용하여 구현하면 쉽다.
#include <stdio.h>
#include <iostream>
#include <algorithm>
#include <queue>
using namespace std;
int main()
{
int n, in2;
string in1;
queue<int> q;
cin >> n;
while (n--) {
cin >> in1;
if (in1 == "push") {
cin >> in2;
q.push(in2);
}
else if (in1 == "pop") {
if (q.empty()) cout << -1 << '\n';
else {
cout << q.front() << '\n';
q.pop();
}
}
else if (in1 == "size")
cout << q.size() << '\n';
else if (in1 == "empty")
cout << q.empty() << '\n';
else if (in1 == "front") {
if (q.empty()) cout << -1 << '\n';
else cout << q.front() << '\n';
}
else if (in1 == "back") {
if (q.empty()) cout << -1 << '\n';
else cout << q.back() << '\n';
}
}
return 0;
}