티스토리 뷰
문제 링크입니다 : https://www.acmicpc.net/problem/1927
1927번: 최소 힙
첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0이�
www.acmicpc.net
우선순위 큐 쓰면 되는 문제이다.
다만, 다른 정렬들 문제처럼 테스트 케이스가 좀 빡빡해서 cout이랑 cin을 사용하면 시간초과가 난다.
scanf랑 printf를 써서 입출력 시간을 좀 더 줄여야한다.
#include <iostream>
#include <cstdio>
#include <queue>
using namespace std;
int main() {
priority_queue<int> pq;
int N, input;
scanf("%d", &N);
for(int i = 0; i < N; i++) {
scanf("%d", &input);
if(input == 0) {
if(pq.empty()) {
printf("0\n");
} else {
printf("%d\n", -pq.top());
pq.pop();
}
} else {
pq.push(-input);
}
}
return 0;
}
개발 환경 : vscode
지적, 조언, 질문 환영입니다! 댓글 남겨주세요~
'알고리즘 > 백준(BOJ)' 카테고리의 다른 글
백준 - 1655 가운데를 말해요 (0) | 2020.06.11 |
---|---|
백준 - 11286 절대값 힙 (0) | 2020.06.11 |
백준 - 1600 말이 되고픈 원숭이 (0) | 2020.06.04 |
백준 - 14948 군대탈출하기 (5) | 2020.06.02 |
백준 - 16637 괄호 추가하기 (0) | 2020.05.25 |
댓글