본문 바로가기
Algorithm/Baekjoon

[백준/BOJ] 11004번 - K번째 수 (C++)

by shine-jung 2021. 7. 16.
반응형

문제 링크

 

코딩하기 전 생각하기

/*
sort 함수를 쓰면 시간 초과가 난다.
우선순위 큐 쓰는 법을 배워서 써보자.
숫자를 입력받아 priority_queue에 저장하자.
pq의 k번 째 수를 출력한다.
*/

 


 

코드

#include <iostream>
#include <bits/stdc++.h>
using namespace std;

int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);

    int n, k, a;
    cin >> n >> k;
    priority_queue<int, vector<int>, greater<int>> pq;
    for ( int i = 0; i < n ; i++ ) {
        cin >> a;
        pq.push(a);
    }
    for ( int i = 0; i < k - 1; i++ )
        pq.pop();
    cout << pq.top();
}

 


 

느낀점

 

ios::sync_with_stdio(0); cin.tie(0); 코드를 쓰기전까지는 시간 초과가 났다.

아슬아슬하게 통과 된 기분인데 출제자가 의도한 알고리즘은 무엇일까?

 

(주의) 기록용으로 작성한 글입니다. 코드가 허접하거나 알고리즘의 효율이 낮을 수 있습니다.

댓글 환영합니다!

반응형

댓글