문제링크
직전에 푼 최대 힙 문제의 변형버전
로직은 동일하지만 우선순위 큐를 오름차순, 내림차순으로 정렬할 수 있냐를 물어보는 문제
우선순위 큐를 선언할 때 우선순위 기준에 대하여 greater, less를 사용하여 오름차순과 내림차순을 정의할 수 있다.
priority_queue<int, vector<int>, greater<int>> greater_pq; // 오름차순(낮은 수부터)
priority_queue<int, vector<int>, less<int>> less_pq; // 내림차순(높은 수부터)
https://soorison-ks.tistory.com/20
제출코드
#include <iostream>
#include <queue>
#include <vector>
using namespace std;
// https://www.acmicpc.net/problem/1927
int main()
{
int N = 0;
int x = 0;
vector<int> result;
priority_queue<int, vector<int>, greater<int>> pq;
cin >> N;
for (int i = 0; i < N; i++)
{
cin >> x;
if (x == 0)
{
if (!pq.empty())
{
result.push_back(pq.top());
pq.pop();
}
else
{
result.push_back(0);
}
}
else
{
pq.push(x);
}
}
for (int i = 0; i < result.size(); i++)
{
cout << result[i] << "\n";
}
return 0;
}
'알고리즘 > 백준풀이' 카테고리의 다른 글
[백준/C++] 2178번 미로 탐색 (0) | 2024.11.14 |
---|---|
[백준/C++] 1931번 회의실 배정 (0) | 2024.11.13 |
[백준/C++] 11279번 최대 힙 (2) | 2024.11.02 |
[백준/C++] 2776번 암기왕 (1) | 2024.10.26 |
[백준/C++] 1966번 프린터 큐 (1) | 2024.10.26 |