레야몬

[C++언어] 11279번 최대 힙 - 우선순위 큐 본문

알고리즘/백준

[C++언어] 11279번 최대 힙 - 우선순위 큐

Leyamon 2022. 8. 29. 20:41
#include <iostream>
#include <algorithm>
#include <vector>
#include <queue>

using namespace std;

priority_queue<int, vector<int>, less<int>> max_pq;  //최대 트리

int N, x;  //연산의 개수, 정수 x

int main()
{
    ios_base::sync_with_stdio(false);  //동기화
    cin.tie(NULL); cout.tie(NULL);
    
    cin >> N;
    
    for(int i=0; i<N; i++) {
        cin >> x;
        if(!x) {
            if(max_pq.empty())  //큐가 비어있을 경우 0 출력
                cout << "0\n";
            else {
                cout << max_pq.top() << '\n';  //최솟값 출력 후 제거
                max_pq.pop(); 
            }   
        }
        else
            max_pq.push(x);  // 큐에 새로운 값 저장
    }
    
    return 0;
}

 

 

바로 앞 문제가 C++ 최대 최소 우선순위 큐 문제라서 간단하게 풀었다. 진짜 C++로 알고리즘으로 하니가 너무 편해서 다시는 C언어로 못 돌아갈 것만 같은 느낌이 든다. 왜 이렇게 편하지..?

 

<priority queue>

https://kbj96.tistory.com/15

 

[C++ STL] Priority_queue 사용법

본 글은 여러 PS 문제를 접하다 보면 우선순위 큐를 적극적으로 사용해야 되는 경우가 있는데 매번 구글링을 하게 되는 것 같아 우선순위 큐에 대한 기본적인 사용법뿐만 아니라 기본적인 자료

kbj96.tistory.com

 

 

 

 

※현재 고등학교 등교중인 학생입니다. 이제 알고리즘을 본격적으로 공부하기 시작해서 아직 초보입니다. 혹시 제가 잘못 알고있는 점이나 더 좋은 풀이 방법이 있어 댓글에 남겨주시면 감사히 하나하나 열심히 읽어보겠습니다. 좋아요, 단순한 댓글 한마디라도 저에겐 큰 힘이 됩니다! 감사합니다.

 
Comments