문제: https://www.acmicpc.net/problem/18258

#include <bits/stdc++.h>
using namespace std;
queue<int> q;
string cmd;
int n, k;
int main() {
cin >> n;
for (int i = 0; i < n; i++) {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> cmd;
if (cmd == "push") {
cin >> k;
q.push(k);
} else if (cmd == "pop") {
if (q.empty())
cout << -1 << '\n';
else {
cout << q.front() << '\n';
q.pop();
}
} else if (cmd == "size")
cout << q.size() << '\n';
else if (cmd == "empty")
cout << q.empty() << '\n';
else if (cmd == "front") {
if (q.empty())
cout << -1 << '\n';
else
cout << q.front() << '\n';
} else if (cmd == "back") {
if (q.empty())
cout << -1 << '\n';
else
cout << q.back() << '\n';
}
}
}
큐1 문제보다 명령의 개수가 더 많아졌기 때문에 알고리즘 수행 시간을 줄여야한다.
하지만 내가 큐1 문제에서 작성했던 코드도 충분히 수행 시간이 짧았었기 때문에 그대로 제출해봤다.
https://pd6156.tistory.com/285

문제해결 ><
'알고리즘' 카테고리의 다른 글
| [BOJ] 10886: 덱 (0) | 2022.09.29 |
|---|---|
| [BOJ] 2164: 카드2 (0) | 2022.09.29 |
| [BOJ] 10845: 큐 (0) | 2022.09.28 |
| [BOJ] 1874: 스택 수열 (1) | 2022.09.28 |
| [BOJ] 10773: 제로 (0) | 2022.09.28 |