알고리즘 풀이/백준
[10845] 백준 알고리즘 : 큐(C++)
데롱디롱
2019. 11. 20. 02:53
728x90
저번에 처음 풀었던 스택 문제와 똑같은 유형 문제였다.
스택에서 큐로 바뀌었을뿐..ㅎㅎ
STL의 queue를 사용하였다.
생성
· queue<자료형> 변수명;
삽입 및 삭제
· push(값); -> 맨 뒤에 값 넣기
· pop(); -> 맨 앞 원소 제거
스택 조회
· front(); -> 가장 앞에있는 값 반환
· back(); -> 가장 뒤에있는 값 반환
· empty(); -> 큐가 비어있는지 확인(true/false)
· size(); -> 큐 사이즈 반환
#include <iostream>
#include <queue>
#include <string>
using namespace std;
int main()
{
int n = 0;
cin >> n;
cin.ignore();
queue<int> q;
string str;
for (int i = 0; i < n; i++)
{
cin >> str;
int num = 0;
if (str.compare("front") == 0)
{
if (!q.empty())
cout << q.front() << endl;
else
cout << -1 << endl;
}
else if (str.compare("back") == 0)
{
if (!q.empty())
cout << q.back() << endl;
else
cout << -1 << endl;
}
else if (str.compare("empty") == 0)
{
if (!q.empty())
cout << 0 << endl;
else
cout << 1 << endl;
}
else if (str.compare("size") == 0)
{
cout << q.size() << endl;
}
else if (str.compare("pop") == 0)
{
if (!q.empty())
{
cout << q.front() << endl;
q.pop();
}
else
cout << -1 << endl;
}
else
{
cin >> num;
q.push(num);
}
}
return 0;
}
10845번: 큐
첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 않은 명령이 주어지는 경우는 없다.
www.acmicpc.net