반응형
https://www.acmicpc.net/problem/2075
자료구조 (priority_queue)를 사용한 문제였습니다.
📕 풀이방법
📔 입력 및 초기화
배열의 모양은 상관없습니다. 단순하게 n번째 큰 수이기 때문에 heap구조(min heap) 를 사용해 풀었습니다.
n, pq를 선언해줍니다.
📔 풀이과정
1. n을 입력받습니다.
2. n*n만큼 수를 입력받습니다.
3. 수를 입력받고 pq에 우선 push합니다.
4. 만약 pq의 크기가 n을 넘어간다면 pq에 들어있는 원소의 최솟값을 pop해줍니다.
📔 정답출력
pq.top을 출력합니다.
📕 Code
#include <bits/stdc++.h>
using namespace std;
int n;
priority_queue <int, vector<int>, greater<int>> pq;
int main(){
scanf("%d",&n);
for(int i = 0, x; i < n * n; i++){
scanf("%d",&x);
pq.push(x);
if(pq.size() > n) pq.pop();
}
cout << pq.top();
}
'Algorithm > 자료구조' 카테고리의 다른 글
(C++) - 백준(BOJ) 1864 : 문어 숫자 (0) | 2021.11.20 |
---|---|
(C++) - 백준(BOJ) 5766번 : 할아버지는 유명해! (0) | 2021.09.30 |
(C++) - 프로그래머스(위클리 챌린지) : 4주차 (0) | 2021.08.23 |
(C++) - 백준(BOJ) 2204번 : 도비의 난독증 테스트 (0) | 2021.08.22 |
(C++) - 백준(BOJ) 10546번 : 배부른 마라토너 (0) | 2021.08.14 |