- [ 장르 ] 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 |