

풀이과정
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;
}
'알고리즘(C++) > 백준 알고리즘' 카테고리의 다른 글
| [백준] C++ 1463번 : 1로 만들기 (1) | 2019.11.12 |
|---|---|
| [백준] C++ 1966번 : 프린터 큐 (0) | 2019.11.08 |
| [백준] C++ 2504번 : 괄호의 값 (0) | 2019.11.08 |
| [백준] C++ 1874번 : 스택 수열 (0) | 2019.11.07 |
| [백준] C++ 10799번 : 쇠막대기 (0) | 2019.11.07 |