본문 바로가기

알고리즘/백준

201030 큐 2 18258번(C++) -컴파일 에러

www.acmicpc.net/problem/18258

 

18258번: 큐 2

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

www.acmicpc.net

문제:

큐를 이용해서 주어진 문자열에 따라서 명령을 수행하면 됩니다.

STL 라이브러리에 queue가 이미 있기 때문에 C++을 사용해서 문제를 풀었습니다.

 

정답:

#include <iostream>
#include <queue>

using namespace std;

int main(){
    int num;
    cin >> num;
    queue<int> q;
    
    while(num--){
        char flag[6];
        cin >> flag;
        switch(flag){
         case "push":
            int x;
            cin >> x;
            q.push(x);
            break;
            
        case "pop":
            cout <<  (q.empty() ? -1 : q.pop())  << endl;
            break; 
            
        case "size":
            cout << q.size() << endl;
            break;
            
        case "empty":
            cout <<  (q.empty() ? 1 : 0)  << endl;
            break;
            
        case "front":
            cout <<  (q.empty() ? -1 : q.front())  << endl;
            break;
        
        case "back":
            cout <<  (q.empty() ? -1 : q.back())  << endl;
            break;
            
    }
    
    return 0;
    
}

----------------------------------------------------------------------------------------------------------------------------------------------

찾아보니까 파이썬은 queue를 구현할 때 queue 모듈도 있고, 리스트를 사용하는 방법도 있었습니다.