https://www.acmicpc.net/problem/1655
1655번: 가운데를 말해요
첫째 줄에는 수빈이가 외치는 정수의 개수 N이 주어진다. N은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수이다. 그 다음 N줄에 걸쳐서 수빈이가 외치는 정수가 차례대로 주어진다. 정수는 -10,000보다 크거나 같고, 10,000보다 작거나 같다.
www.acmicpc.net
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
//가운데를 말해요 1655
int main()
{
priority_queue <int> p;
priority_queue <int, vector<int>, greater<int>> q;
int n,i,a;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a);
if(p.empty() || q.empty())
{
//puts("11");
p.push(a);
}
else
{
//puts("22");
if(q.top()<=a)
{
//puts("33");
q.push(a);
}
else
{
//puts("44");
p.push(a);
}
}
if(!(p.size() == q.size() || p.size() == q.size() + 1))
{
//uts("55");
if(p.size() > q.size())
{
q.push(p.top());
p.pop();
}
else{
p.push(q.top());
q.pop();
}
}
printf("%d\n", p.top());
}
return 0;
}
'정보올림피아드-KOI > BOJ' 카테고리의 다른 글
스택 Stack (0) | 2022.02.04 |
---|---|
단어 뒤집기 2 (0) | 2021.12.31 |
BOJ 외판원 순회 2 - 10971번 (0) | 2020.05.08 |
백준 - 프린터 큐 : 1966번 (0) | 2020.04.26 |
백준 - 로마 숫자 만들기 : 16922번 (0) | 2020.04.26 |