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 모듈도 있고, 리스트를 사용하는 방법도 있었습니다.
'알고리즘 > 백준' 카테고리의 다른 글
201030 1로 만들기 1463번(C++) --잘 모르겠습니다 (0) | 2020.10.30 |
---|---|
201030 접미사 배열 11656번(Python 3) (3) | 2020.10.30 |
201030 큐 2 18258번(C++) - 시간초과 (0) | 2020.10.30 |
201030 A+B-4 10951번(C++) (0) | 2020.10.30 |
201030 블랙잭(Python 3) 2798 (1) | 2020.10.30 |