반응형
문제
풀이
큐(Queue)은 FIFO(Last In First Out, 후입선출) 구조이다.
큐를 구현하기 위해 std::queue를 사용할 수 있다.
스택과 비슷한 형태의 함수를 지원하지만, 의미와 동작은 다르게 정의되어 있다.
예를 들어, std::queue에서 pop()은 pop_front()를 의미한다.
만약, 단순히 양 끝에 있는 원소에 접근하고 싶다면 front(), back() 함수를 사용하면 된다.
아래는 std::queue를 사용하는 예제 코드이다.
// std::queue를 이용해 큐 구현
#include <queue>
std::queue<int> q;
q.push(1);
q.push(2;
q.push(3)
q.pop;
코드
#include <iostream>
#include <string>
#include <queue>
using namespace std;
int main() {
int N, num;
string str;
queue<int> q;
cin >> N;
for (int i = 0; i < N; i++) {
cin >> str;
if (str == "push") {
cin >> num;
q.push(num);
}
else if (str == "pop") {
if (q.empty()) {
cout << "-1" << "\n";
}
else {
cout << q.front() << "\n";
q.pop();
}
}
else if (str == "size") {
cout << q.size() << "\n";
}
else if (str == "empty") {
if (q.empty()) {
cout << "1" << "\n";
}
else {
cout << "0" << "\n";
}
}
else if (str == "front") {
if (q.empty()) {
cout << "-1" << "\n";
}
else {
cout << q.front() << "\n";
}
}
else if (str == "back") {
if (q.empty()) {
cout << "-1" << "\n";
}
else {
cout << q.back() << "\n";
}
}
}
return 0;
}
결과
반응형
'Programming > C++ - 백준' 카테고리의 다른 글
[백준] 11931번 : 수 정렬하기 4 (C++) (0) | 2024.03.13 |
---|---|
[백준] 11866번 : 요세푸스 문제 0 (C++) (0) | 2024.03.13 |
[백준] 10828번 : 스택 (C++) (0) | 2024.03.11 |
[백준] 2798번 : 블랙잭 (C++) (0) | 2024.03.10 |
[백준] 2869번 : 달팽이는 올라가고 싶다 (C++) (0) | 2024.03.07 |
댓글