항상 최대값이 뭔지 알고 있어야 하니까, priority_queue를 이용했다.
우선순위 큐의 top()은 항상 최대 값을 알고 있다.
pop() 하면 항상 최대값이 제거된다.
#include <bits/stdc++.h>
using namespace std;
int n;
long long input;
priority_queue<long long> pq;
int main(void) {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> n;
while(n--){
cin >> input;
if(pq.empty() && input == 0){
cout << 0 << '\n';
}else if(input == 0){ // 출력 및 제거
cout << pq.top() << '\n';
pq.pop();
}else{
pq.push(input);
}
}
return 0;
}
728x90
'알고리즘 > 백준' 카테고리의 다른 글
ATM 백준 11399번 c++ (0) | 2022.02.19 |
---|---|
나는야 포켓몬 마스터 이다솜 백준 1620번 c++ (0) | 2022.02.19 |
집합 백준 11723번 c++ (0) | 2022.02.19 |
바이러스 백준 2602번 c++ (0) | 2022.02.19 |
비밀번호 찾기 백준 17219번 c++ (0) | 2022.02.17 |