개발자 피터
Peter's Dev Blog
개발자 피터
전체 방문자
오늘
어제
  • 분류 전체보기 (77)
    • 🧑🏻‍💻 Develop (13)
      • Devops (3)
      • Elasticsearch (3)
      • Design Pattern (1)
      • SQL (4)
      • Architecture (1)
      • APM (1)
    • 💻 Service (7)
      • E-ROOM (3)
      • Briefing (4)
    • 💡 Problem Solving (43)
      • Baekjoon (40)
      • Programmers (2)
    • 📚 Reading (12)
      • Tech (9)
      • Self-Help (3)
    • 💬 Etc (1)
    • 📈 Retrospective (1)

블로그 메뉴

  • 🌟 깃허브
  • 🏷️ 태그 클라우드
  • 📝 방명록

공지사항

인기 글

태그

  • Programmers
  • E-ROOM
  • SQL
  • 구현
  • 백준
  • 독서
  • java
  • 브루트포스
  • MySQL
  • elasticsearch
  • 문자열
  • boj
  • briefing
  • 백트래킹
  • 그리디

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
개발자 피터

Peter's Dev Blog

💡 Problem Solving/Baekjoon

[백준 - 11286] 절댓값 힙 [C++]

2023. 10. 18. 01:26
728x90
반응형

1. 문제

https://www.acmicpc.net/problem/11286

 

11286번: 절댓값 힙

첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0

www.acmicpc.net

 

2. 풀이

우선순위 큐 비교 컨테이너를 직접 만들어서 껴주면 된다.

 

3. 코드

#include <iostream>
#include <queue>
#include <vector>

using namespace std;

struct Compare {
    bool operator()(int a, int b) const {
        if(abs(a) == abs(b)) return a > b;
        return abs(a) > abs(b);
    }
};

priority_queue<int, vector<int>, Compare > absHeap;
int n, input;

int main() {
    cin.tie(nullptr);
    ios::sync_with_stdio(false);

    cin >> n;
    for(int i=0; i<n; i++) {
        cin >> input;
        if(input == 0) {
            if(absHeap.empty()) cout << "0\n";
            else {
                cout << absHeap.top() << "\n";
                absHeap.pop();
            }
        }
        else absHeap.push(input);
    }

    return 0;
}
728x90
반응형
저작자표시 (새창열림)

'💡 Problem Solving > Baekjoon' 카테고리의 다른 글

[백준 - 7490] 0 만들기 [C++]  (0) 2023.10.19
[백준 - 1629] 곱셈 [C++]  (0) 2023.10.19
[백준 - 1931] 회의실 배정 [C++]  (0) 2023.10.17
[백준 - 1541] 잃어버린 괄호 [C++]  (0) 2023.10.16
[백준 - 15829] Hashing [C++]  (0) 2023.10.14
    '💡 Problem Solving/Baekjoon' 카테고리의 다른 글
    • [백준 - 7490] 0 만들기 [C++]
    • [백준 - 1629] 곱셈 [C++]
    • [백준 - 1931] 회의실 배정 [C++]
    • [백준 - 1541] 잃어버린 괄호 [C++]
    개발자 피터
    개발자 피터
    Backend Engineer 🔥

    티스토리툴바