-
백준 10845번: 큐큐(Queue) 2018. 6. 20. 13:25반응형
https://www.acmicpc.net/problem/10845
1. 문제
정수를 저장하는 큐를 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오.
명령은 총 여섯 가지이다.
push X: 정수 X를 큐에 넣는 연산이다.
pop: 큐에서 가장 앞에 있는 정수를 빼고, 그 수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다.
size: 큐에 들어있는 정수의 개수를 출력한다.
empty: 큐가 비어있으면 1, 아니면 0을 출력한다.
front: 큐의 가장 앞에 있는 정수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다.
back: 큐의 가장 뒤에 있는 정수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다.
2. 알고리즘
큐 자료형 사용법
3. 코드
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465#include <iostream>#include <sstream>#include <string>#include <algorithm>#include <functional>#include <vector>#include <list>#include <queue>#include <map>#include <set>#include <stack>using namespace std;int main() {std::ios::sync_with_stdio(false); cin.tie(0);int n; cin >> n;queue<int> q;for(int i =0; i<n; i++) {string s; cin >> s;int num = 0;if (s == "push") {int cand; cin >> cand;q.push(cand);}else if(s == "front") {if (q.size() == 0) {cout << -1 << "\n";} else {num = q.front();cout << num << "\n";}}else if(s == "back") {if (q.size() == 0) {cout << -1 << "\n";} else {num = q.back();cout << num << "\n";}}else if(s == "size") {cout << q.size() << "\n";}else if(s == "empty") {if(q.size() == 0)num = 1;elsenum = 0;cout << num << "\n";}else if(s == "pop") {if(q.size() != 0){num = q.front();q.pop();}else{num = -1;}cout << num << "\n";}}return 0;}cs 반응형'큐(Queue)' 카테고리의 다른 글
백준 1335번: 트럭 (0) 2020.02.06 백준 1715번: 카드 정렬하기 (0) 2018.08.05 백준 10866번: 덱 (0) 2018.06.20 백준 1927번: 최소힙 (0) 2018.06.17 백준 11279번 : 최대 힙 (0) 2018.06.17