티스토리 뷰

알고리즘/백준(BOJ)

백준 - 1927 최소 힙

시나모온 2020. 6. 11. 01:52

문제 링크입니다 : 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

지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함