오답노트
[그래프] BOJ 10845번 큐 본문
https://www.acmicpc.net/problem/10845
10845번: 큐
첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지
www.acmicpc.net
- 문제파악
큐의 구조를 파악할 수 있는 문제
- 정답
큐는 선입선출이다. 즉 먼저 들어온 요소가 나갈때도 먼저 나간다. 해당 문제에서 pop과 같다. C++ stl에서 queue를 제공하고 있다.
#include "bits/stdc++.h"
using namespace std;
int arr[10002];
int nsize = 0;
void push(int k)
{
arr[nsize] = k;
nsize++;
}
void pop()
{
if (nsize > 0)
{
cout << arr[0] << "\n";
for (int i = 0; i < nsize; i++)
{
arr[i] = arr[i + 1];
}
nsize--;
}
else
cout << "-1\n";
}
void size()
{
cout << nsize << "\n";
}
void empty()
{
if(nsize == 0)
cout << "1\n";
else
cout << "0\n";
}
void front()
{
if (nsize > 0)
cout << arr[0] << "\n";
else
cout << "-1\n";
}
void back()
{
if (nsize > 0)
cout << arr[nsize - 1] << "\n";
else
cout << "-1\n";
}
int main()
{
cin.tie(0);
cout.tie(0);
ios::sync_with_stdio(0);
int n;
cin >> n;
while (n--)
{
string cmd;
int nCmd;
cin >> cmd;
if (cmd == "push")
{
cin >> nCmd;
push(nCmd);
}
else
{
if (cmd == "pop")
pop();
else if (cmd == "size")
size();
else if (cmd == "empty")
empty();
else if (cmd == "front")
front();
else if (cmd == "back")
back();
}
}
}
'C,C++ > 코딩테스트' 카테고리의 다른 글
[그래프] BOJ 11724번 연결 요소의 개수 (0) | 2022.05.21 |
---|---|
[그래프] BOJ 10866번 덱 (0) | 2022.05.17 |
[DP] 11722번 가장 긴 감소하는 부분 수열 (0) | 2022.05.17 |
[DP] BOJ 11055번 가장 큰 증가 부분 수열 - 오답노트 (0) | 2022.05.17 |
[DP] BOJ 1932번 정수 삼각형 (0) | 2022.05.15 |