[C++] 백준 18258 : 큐2

Kim Nahyeong·2022년 1월 18일
0

백준

목록 보기
65/157

#include <iostream>
#include <queue>

using namespace std;

int main(void){
    std::ios_base::sync_with_stdio(false);
	std::cin.tie(NULL);
	std::cout.tie(NULL); // printf scanf와 cin cout 같이 쓰면 안됨

    int N;
    string str;
    queue<int> queue;

    cin >> N;

    for(int i=0; i<N; i++){
        cin >> str;
        if(str == "push"){
            int n;
            cin >> n;
            queue.push(n);
        } else if(str == "pop"){
            if(queue.empty()){
                cout << -1 << "\n";
            } else {
                cout << queue.front() << "\n";
                queue.pop();
            }
        } else if(str == "size"){
            cout << queue.size() << "\n";
        } else if(str == "empty"){
            if(queue.empty()){
                cout << 1 << "\n";
            } else {
                cout << 0 << "\n";
            }
        } else if(str == "front"){
            if(queue.empty()){
                cout << -1 << "\n";
            } else {
                cout << queue.front() << "\n";
            }
        } else if(str == "back"){
            if(queue.empty()){
                cout << -1 << "\n";
            } else {
                cout << queue.back() << "\n";
            }
        }
    }

    return 0;
}

기본 큐 문제랑 같은 문제. 다만 입출력을 빨리하는 것으로 바꿔주어야했다.
라이브러리를 이용했기 때문에 느린 것이 아니라, cin cout endl 때문에 느린 것이었다.

하지만 queue STL 라이브러리를 사용했기때문에 cin, cout을 사용해야했고

std::ios_base::sync_with_stdio(false);
std::cin.tie(NULL);
std::cout.tie(NULL);

을 사용해서 cin, cout 의 시간을 줄여주어야했다.

주의할 점!

printf scanf와 cin cout 같이 쓰면 안됨, 하나만 쓰기!

0개의 댓글