명령에 맞게 실행하고, 결과를 보여주면 되는 문제이다.
큐는 BFS 할 때 좀 써서 그런지 다른 자료구조보단 익숙한 것 같다.
push
, pop
, size
, empty
, front
, back
으로 데이터에 접근할 수 있고
프링글스였던 stack과 다르게 선입선출 구조를 가지고 있다.
신경써 줄 부분은 pop
함수를 사용했을 때 front
값을 출력하지 않는다는 것.
그냥 뽑을 뿐이므로 코드를 추가해준다.
고대-로 죽죽 써내려가면 된다.
#include <iostream>
#include <queue>
using namespace std;
int n, x;
string order;
queue<int> q;
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin >> n;
for (int i = 0; i < n; i++) {
cin >> order;
if (order == "push") {
cin >> x;
q.push(x);
}
else if (order == "pop") {
if (!q.empty()) {
cout << q.front() << "\n";
q.pop();
}
else cout << "-1\n";
}
else if (order == "size") {
cout << q.size() << "\n";
}
else if (order == "empty") {
cout << q.empty() << "\n";
}
else if (order == "front") {
if (!q.empty()) {
cout << q.front() << "\n";
}
else cout << "-1\n";
}
else {
if (!q.empty()) {
cout << q.back() << "\n";
}
else cout << "-1\n";
}
}
return 0;
}
ios 어쩌구. 만능코드.