https://www.acmicpc.net/problem/10845
이 문제는 STL의 queue를 이용해서 큐를 만들면 해결할 수 있다.
string 객체를 생성해 입력을 받아 if 문을 통해 명령이 무엇인지 판단한다.
그 후 명령에 따라 queue의 함수를 호출하면 된다.
push 명령의 경우 push를 사용한다.
pop의 경우 비어있는지 알 수 있는 empty를 사용하여 큐가 비어있는지 확인한 후 요소가 있다면 가장 먼저 삽입된 요소를 알 수 있는 front 함수와 꺼내는 pop을 사용한다.
size의 경우 size함수를 사용하고, empty의 경우 empty 함수를 사용한다.
마지막으로 front와 back의 경우 pop 명령에서 pop 함수를 제외하고 front의 경우 front, back의 경우 back함수를 사용한다.
#include<iostream>
#include<queue>
using namespace std;
int main(){
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int N;
cin>>N;
queue<int> q;
for(int i = 0;i<N;i++){
string command;
cin>>command;
if(command =="push"){
int input;
cin>>input;
q.push(input);
}
if(command == "pop"){
if(q.empty()) cout<<-1<<'\n';
else{
int value = q.front();
q.pop();
cout<<value<<'\n';
}
}
if(command == "size"){
cout<<q.size()<<'\n';
}
if(command == "empty"){
cout<<q.empty()<<'\n';
}
if(command == "front"){
if(q.empty()) cout<<-1<<'\n';
else{
int value = q.front();
cout<<value<<'\n';
}
}
if(command == "back"){
if(q.empty()) cout<<-1<<'\n';
else{
int value = q.back();
cout<<value<<'\n';
}
}
}
}
'Baekjoon Review' 카테고리의 다른 글
[Bronze 1] 11050번 이항 계수 1 (0) | 2023.10.13 |
---|---|
[Silver 4] 10866번 덱 (0) | 2023.10.13 |
[Silver 4] 10828번 스택 (0) | 2023.10.13 |
[Silver 4] 10816번 숫자 카드 2 (0) | 2023.10.13 |
[Silver 5] 10814번 나이순 정렬 (0) | 2023.10.12 |