해결방법
대놓고 큐를 사용하라고 하는 문제이다.
일단 큐의 개념을 살펴보자면 FIFO 구조로 되어 있어 먼저 들어온 애가 가장 먼저 뽑히고, 나중에 들어온다면 맨 뒤로 가는 구조이다.
STL에 큐가 있으니 그것을 활용해보았다.
정답 코드
#include <iostream>
#include <queue>
using namespace std;
int main()
{
queue<int> Queue;
string CMD;
int N, num;
cin >> N;
for (int i = 0; i < N; i++)
{
cin >> CMD;
if (CMD == "push")
{
cin >> num;
Queue.push(num);
}
if (CMD == "pop")
{
if (Queue.size() == 0)
{
cout << "-1" << endl;
}
else
{
cout << Queue.front() << endl;
Queue.pop();
}
}
if (CMD == "size")
{
cout << Queue.size() << endl;
}
if (CMD == "empty")
{
if (Queue.empty())
cout << "1" << endl;
else
cout << "0" << endl;
}
if (CMD == "front")
{
if (!Queue.empty())
cout << Queue.front() << endl;
else
cout << "-1" << endl;
}
if (CMD == "back")
{
if (!Queue.empty())
cout << Queue.back() << endl;
else
cout << "-1" << endl;
}
}
return 0;
}
'코딩테스트' 카테고리의 다른 글
BOJ - 스택 10828 (0) | 2025.01.04 |
---|---|
BOJ - 괄호 9012 (0) | 2025.01.04 |
BOJ - 카드2 2164 (0) | 2025.01.04 |
BOJ - 숫자카드 2 10816 (0) | 2025.01.04 |
BOJ - 요세푸스 문제 0 11866 (0) | 2025.01.04 |