본문 바로가기

Algorithm/스택과 큐

백준 큐(10845) C++ 풀이

알고리즘 분류

자료 구조

문제 해결 아이디어

vector를 이용하여 queue의 구조인 FIFO(첫번째로 들어온 것이 가장 먼저 나간다)를 구현하였다,

코드

#include <iostream>
#include <vector>
using namespace std;

vector<int> v;
int main()
{
	int n;

	cin >> n;

	string s;
	int num;
	for (int i = 0; i < n; i++)
	{
		cin >> s;

		if (s == "push")
		{
			cin >> num;
			v.push_back(num);
		}
		else
		{
			if (s == "pop")
			{
				if (v.size() == 0) cout << -1 << endl;
				else
				{
					cout << v.front() << endl;
					v.erase(v.begin());
				}
			}
			else if (s == "size")
			{
				cout << v.size() << endl;
			}
			else if (s == "empty")
			{
				cout << v.empty() << endl;
			}
			else if (s == "front")
			{
				if (v.size() == 0) cout << -1 << endl;
				else
					cout << v.front() << endl;
			}
			else if (s == "back")
			{
				if (v.size() == 0) cout << -1 << endl;
				else
					cout << v.back() << endl;
			}
		}
	}
}