728x90
우선순위 큐에 less, greater 대신에 별도의
비교 연산을 위한 구조체를 정의해서 넣으면 된다.
- c++
#include <cmath>
#include <iostream>
#include <queue>
using namespace std;
int n;
struct compare {
bool operator()(const int& num1, const int& num2) {
if (abs(num1) != abs(num2))
return abs(num1) > abs(num2);
else
return num1 > num2;
}
};
int main() {
cin.tie(0);
ios_base::sync_with_stdio(0);
priority_queue<int, vector<int>, compare> pq;
cin >> n;
for (int i = 0; i < n; ++i) {
int x;
cin >> x;
if (x) {
pq.push(x);
} else {
if (!pq.empty()) {
cout << pq.top() << "\n";
pq.pop();
} else {
cout << "0\n";
}
}
}
return 0;
}
|
cs |
728x90
'PS' 카테고리의 다른 글
BOJ 11404 - 플로이드 (0) | 2020.12.15 |
---|---|
BOJ 15685 - 드래곤 커브 (0) | 2020.12.15 |
BOJ 15684 - 사다리 조작 (0) | 2020.12.14 |
프로그래머스 - JadenCase 문자열 만들기 (0) | 2020.12.09 |
프로그래머스 - N 개의 최소공배수 (0) | 2020.12.09 |