문제
문제에 대한 링크는 여기를 클릭해주세요.
문제 설명
입력 받을 케이스의 개수를 입력한 뒤 push, pop, empty, size, front, back 중 하나를 입력하여 queue에 대한 연산을 수행합니다.
풀이
C++ STL에 있는 queue를 사용하였습니다.
소스 코드
#include <iostream>
#include <string>
#include <queue>
using namespace std;
int main()
{
queue<int> q;
string str;
char ptr[6];
int N = 0, num(0);
scanf("%d", &N);
for (int i = 0; i < N; i++)
{
scanf("%s", ptr);
str = ptr;
if(str == "push")
{
scanf("%d", &num);
q.push(num);
}
else if(str == "pop")
{
if(q.empty())
printf("-1\n");
else
{
printf("%d\n", q.front());
q.pop();
}
}
else if(str == "size")
printf("%d\n", q.size());
else if(str == "empty")
printf("%d\n", q.empty());
else if(str == "front")
{
if(q.empty())
printf("-1\n");
else
printf("%d\n", q.front());
}
else if(str == "back")
{
if(q.empty())
printf("-1\n");
else
printf("%d\n", q.back());
}
}
return 0;
}
주의 사항
cin, cout로 입출력 시 시간 초과가 발생할 수 있으니 scanf와 printf으로 대체해서 사용하시면 됩니다.
string 인스턴스는 scanf로 입력이 불가능하므로 배열을 따로 생성하여 string 인스턴스에 저장하는 방식을 사용하시면 됩니다.
'알고리즘 Algorithm > 백준 (BaekJoon)' 카테고리의 다른 글
백준 11866 : 요세푸스 문제 0 [C++] (0) | 2021.03.12 |
---|---|
백준 2164 : 카드2 [C++] (0) | 2021.03.11 |
백준 17298 : 오큰수 [C++] (0) | 2021.02.13 |
백준 1874 : 스택 수열 [C++] (0) | 2021.02.12 |
백준 4949 : 균형잡힌 세상 [C++] (0) | 2021.02.12 |