- [ 장르 ] Queue
- [ 문제 ]
18258번: 큐 2
첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 2,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지
www.acmicpc.net
- My Code
#include <iostream> #include <queue> #include <string> using namespace std; int main() { int cnt,i = 0,data; queue<int> que; string str; cin.tie(NULL); cout.tie(NULL); ios_base::sync_with_stdio(false); // ★ 입출력속도개선선언부 cin >> cnt; while (i < cnt) { cin >> str; if (!str.compare("push")) { cin >> data; que.push(data); } else if (!str.compare("pop")) { if (!que.empty()) { cout << que.front() << '\n'; // ★ 개행마다 endl이 아닌 '\n' que.pop(); } else cout << -1 << '\n'; } else if (!str.compare("front")) { if (!que.empty()) cout << que.front() << '\n'; else cout << -1 << '\n'; } else if (!str.compare("back")) { if (!que.empty()) cout << que.back() << '\n'; else cout << -1 << '\n'; } else if (!str.compare("size")) cout << que.size() << '\n'; else cout << que.empty() << '\n'; i++; } }
" 공부한 것을 적용하면서 기억을 하자. "
[ CheckPoint ]
- 기본적인 큐(Queue) 기능문제이다. C++에선 <queue> container에 모든 왠만한 queue연산은 제공되 있으므로 이를 잘 인지하고 있는지
확인하는 정도의 문제이다.- 다만, 이 문제 역시 실행속도 문제때문에 메인 본문에 코드에 주석처리로 된 ★ 부분이 선언부를 작성해주고, 하나 더 C++의 endl개행보다
'\n' 을 사용하는것을 지향한다.
728x90
반응형
'Algorithm Practice > [ Baekjoon ]' 카테고리의 다른 글
[Baekjoon][#10866] 덱(Deque) (0) | 2020.09.24 |
---|---|
[Baekjoon][#11729] 하노이 탑 이동순서 (0) | 2020.09.23 |
[Baekjoon][#1991] 트리순회 (0) | 2020.09.21 |
[Baekjoon][#11279] 최대 힙 (0) | 2020.09.20 |
[Baekjoon][10828번] 스택 (0) | 2020.09.18 |