728x90
출처
https://www.acmicpc.net/problem/18258
내 풀이
#include<iostream>
#include<queue>
using namespace std;
int main()
{
// 밑에 3개 쓰면 시간초과 사라짐
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int N = 0;
int push_command = 0;
string command = " ";
queue<int>q;
cin >> N;
for (int i = 0; i < N; i++)
{
cin >> command;
if (command == "push")
{
cin >> push_command;
q.push(push_command);
}
else if (command == "pop")
{
if (q.empty()) cout << -1 << "\n";
else
{
cout << q.front() << "\n";
q.pop();
}
}
else if (command == "size")
{
cout << q.size() << "\n";
}
else if (command == "empty")
{
if (q.empty()) cout << 1 << "\n";
else cout << 0 << "\n";
}
else if (command == "front")
{
if (q.empty()) cout << -1 << "\n";
else cout << q.front() << "\n";
}
else if (command == "back")
{
if (q.empty()) cout << -1 << "\n";
else cout << q.back() << "\n";
}
}
}
해설
입력받은 문자열에 따라 큐에 명령을 실행시켜주기만 하였다.
시간초과가 나는경우 아래의 3줄을 적으면 시간 초과를 해결할 수 있다.
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
느낀점
큐에 대해 정리할 수 있는 시간이었다.
'백준 코딩테스트 > 실버' 카테고리의 다른 글
10866) 덱 (C++) (0) | 2022.05.07 |
---|---|
2164) 카드2 (C++) (0) | 2022.05.05 |
1920) 수 찾기 (C++) (0) | 2022.05.01 |
11053) 가장 긴 증가하는 부분 수열 (C++) (0) | 2022.04.30 |
9327) 이장님 초대 (C++) (0) | 2022.04.28 |