본문 바로가기

카테고리 없음

(C++) - 백준(BOJ) 18258번 : 큐 2

반응형

www.acmicpc.net/problem/18258

 

18258번: 큐 2

첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 2,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지

www.acmicpc.net

deque 자료형을 사용해 푼 문제였습니다.

 

* 입출력이 많으므로 c와의 버퍼 동기화를 끊어줍니다.

codecollector.tistory.com/381

Code

#include <bits/stdc++.h>
#define fastio ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
using namespace std;
int n;
deque <int> dq;
int main(){
    fastio;
    cin >> n;
    while(n--){
        string s;
        cin >> s;
        if(s == "push") {
            int x;
            cin >> x;
            dq.push_back(x);
        }
        else if(s=="pop"){
            if(dq.empty()) cout << -1 <<'\n';
            else {
                cout << dq.front() <<'\n';
                dq.pop_front();
            }
        }
        else if(s=="size")
            cout << dq.size() <<'\n';
        else if(s=="empty")
            cout << dq.empty() << '\n';
        else if(s == "front"){
            if(dq.empty()) cout << -1 << '\n';
            else cout << dq.front() << '\n';
        }
        else if(s == "back"){
            if(dq.empty()) cout << -1 << '\n';
            else cout << dq.back() << '\n';
        }
    }
}