본문 바로가기

알고리즘(C++)/백준 알고리즘

[백준] C++ 10845번 : 큐

풀이과정


N개의 문자열을 입력받아 vector<string> v에 저장한다.

push의 경우 입력할 값이 주어지기 때문에 if문을 사용해서 입력을 한 번 더 받는다.

v에 입력된 값에 맞게 명령을 수행한다.

 

 

코드


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

	int main()
	{
		queue<int> q;
		vector<string> v;
		int iInputSize = 0;

		cin >> iInputSize;
		cin.ignore();

		v.reserve(iInputSize);

		for (int i = 0; i < iInputSize; ++i)
		{
			string s;

			cin >> s;
			v.push_back(s);

			if (s == "push")
			{
				cin >> s;
				v.push_back(s);

			}
		}

		vector<string>::iterator iter = v.begin();
		for (iter; iter != v.end(); ++iter)
		{
			if (*iter == "push")
			{
				++iter;
				q.push((atoi((*iter).c_str())));
			}
			else if (*iter == "front")
			{
				if (q.size() == 0) cout << -1 << endl;
				else cout << q.front() << endl;
			}
			else if (*iter == "back")
			{
				if (q.size() == 0) cout << -1 << endl;
				else cout << q.back() << endl;
			}
			else if (*iter == "size")
			{
				cout << q.size() << endl;
			}
			else if (*iter == "empty")
			{
				if (q.size() == 0) cout << 1 << endl;
				else cout << 0 << endl;
			}
			else if (*iter == "pop")
			{
				if (q.size() == 0) cout << -1 << endl;
				else
				{
					cout << q.front() << endl;
					q.pop();
				}
			}
		}

		return 0;
	}