Programing/백준, 프로그래머스(C++)

[C++][백준 2075] N번째 큰 수

hye3193 2025. 1. 22. 12:43

https://www.acmicpc.net/problem/2075

풀이

n번째로 큰 수를 찾으면 되기 때문에 저장할 배열의 크기는 n이면 된다

우선 n개까지는 배열에 계속 넣어주다가,

n + 1번째 숫자부터는 배열 내에서 가장 작은 값과 비교해서 더 클 경우에 가장 작은 값을 빼고 입력받은 값을 넣어준다

이 과정을 반복하면 모든 입력이 끝났을 때 배열에서 가장 작은 값이 정답이다

 

제출 코드

#include <iostream>
#include <queue>
using namespace std;

priority_queue<int, vector<int>, greater<int>> q;

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

    int n, input;
    cin >> n;

    for (int i = 0; i < n; i++)
    {
        cin >> input;
        q.push(input);
    }

    for (int i = 0; i < n * (n - 1); i++)
    {
        cin >> input;
        if (q.top() < input)
        {
            q.pop();
            q.push(input);
        }
    }

    cout << q.top();
}