728x90
priority queue pair<int, int>로 구현했다.
pair로 구성한 우선순위 큐는 첫번째 원소를 기준으로 정렬하기 때문에,
pair의 첫번째 값에는 절댓값을 넣어주고 두번째 값에 원래 값을 넣어줬다.
또한, 내림차순이 기본이기 때문에 오름차순으로 바꿔주었다.
#include <iostream>
#include <queue>
#include <vector>
using namespace std;
int main(void)
{
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int N;
priority_queue< pair<int,int>, vector<pair<int,int> >, greater<pair<int,int> > > pq;
cin >> N;
while(N--) {
int x; cin >> x;
if(x==0) {
if (pq.empty()) cout << 0 << '\n';
else
{
cout << pq.top().second << '\n';
pq.pop();
}
}
else {
pq.push(make_pair(abs(x),x));
}
}
return 0;
}
728x90
'Algorithm > 백준과 프로그래머스' 카테고리의 다른 글
[C++] 11508. 2+1세일 (0) | 2023.11.16 |
---|---|
[C++] 숫자짝궁 (0) | 2023.11.14 |
[C++] 1935. 후위 표기식2 (1) | 2023.07.16 |
[C++] 2164. 카드2 (0) | 2023.07.16 |
[C++] 1158. 요세푸스 (0) | 2023.07.15 |