Post List

[BOJ] 백준 11286 절댓값 힙

백준 11286 절댓값 힙



이 문제는, 절댓값을 우선순위 큐 안에 넣는 문제 입니다.
절댓값은 항상 양수죠. 그래서 음수도 양수로 바꿔서 넣어 주어야 합니다.
절댓값이 가장 작은 수부터 출력해야 하므로 최소 힙이고,
pair 를 사용해, 값이 음수로 들어왔으면 -1을 곱한다음 false 로 입력
그 후 출력시엔 false면 -1을 곱한다음 출력 입니다.

소스 코드 :

#include 
#include 
#include 
#include 
using namespace std;

int main() {
 ios_base::sync_with_stdio(0);
 cin.tie(0);
 priority_queue < pair , vector >, greater >> minHeap;
 int n;
 cin >> n;
 for (int i = 0; i < n; i++) {
  int q;
  cin >> q; cin.ignore();
  if (q == 0) {
   if (!minHeap.empty()) {
    if(minHeap.top().second == false)
     cout << -1 * minHeap.top().first << '\n';
    else cout << minHeap.top().first << '\n';
    minHeap.pop();
   }
   else {
    cout << '0' << '\n';
   }
  }
  else {
   if(q<0 else="" false="" minheap.push="" pre="" q="" true="">

댓글