반응형
C++ 풀이
C++에선 priority_queue로 최대힙을 지원하니 사용하면 된다.
#include <bits/stdc++.h>
using namespace std;
priority_queue<int> pq;
int main(void)
{
ios::sync_with_stdio(false);
cin.tie(NULL);
int N;
cin >> N;
for (int i = 0 ; i< N; i++)
{
int tmp;
cin >> tmp;
if(tmp ==0)
{
if(!pq.empty()){
cout << pq.top() <<'\n';
pq.pop();
}else{
cout << "0\n";
}
}else{
pq.push(tmp);
}
}
}
Python 풀이
import sys
import heapq
input = sys.stdin.readline
N = int(input().rstrip())
hq = list()
for _ in range(N):
a = int(input().rstrip())
if a == 0:
if hq:
print(-heapq.heappop(hq))
else :
print('0')
else :
heapq.heappush(hq,-a)
반응형
'Algorithm > Problem Solve' 카테고리의 다른 글
[백준 11723번] 집합 (C++/ Python) (0) | 2020.12.29 |
---|---|
[백준 11399번] ATM (0) | 2020.12.28 |
[백준 9095번] 1,2,3 더하기 (C++ / Python) (0) | 2020.12.28 |
[백준 7576번] 토마토 (C++/Python) (0) | 2020.12.26 |
[백준 2630번] 색종이 만들기 ( C++/ Python ) (0) | 2020.12.26 |