[백준/C++] 1927번 최소힙

최대 1 분 소요

1.문제 링크

1927



2. 풀이 전 계획과 생각

  • 최소힙 자료구조 이용



3. 풀이

#include <iostream>
#include <queue>
using namespace std;

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    
	priority_queue< int, vector<int>, greater<int> > q;

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

c++ stl에서 최소힙은 priority_queue< int, vector, greater > q 로 사용할 수 있다.



4. 풀이하면서 고민했던 점

  • 시간 제한이 있었다. 계속 시간제한에 걸렸지만 ios_base::sync_with_stdio(false);와 cin.tie(nullptr);을 구현하니 통과했다.



5. 문제를 풀고 알게된 개념 및 소감

  • c++ stl 최소힙 사용법을 알게되었다.