[BOJ][C++] λ°±μ€ 1655λ²: κ°μ΄λ°λ₯Ό λ§ν΄μ (Gold II)
λ¬Έμ
λ°±μ€μ΄λ λμμκ² "κ°μ΄λ°λ₯Ό λ§ν΄μ" κ²μμ κ°λ₯΄μ³μ£Όκ³ μλ€. λ°±μ€μ΄κ° μ μλ₯Ό νλμ© μΈμΉ λλ§λ€ λμμ μ§κΈκΉμ§ λ°±μ€μ΄κ° λ§ν μ μ€μμ μ€κ°κ°μ λ§ν΄μΌ νλ€. λ§μ½, κ·Έλμ λ°±μ€μ΄κ° μΈμΉ μμ κ°μκ° μ§μκ°λΌλ©΄ μ€κ°μ μλ λ μ μ€μμ μμ μλ₯Ό λ§ν΄μΌ νλ€.
μλ₯Ό λ€μ΄ λ°±μ€μ΄κ° λμμκ² 1, 5, 2, 10, -99, 7, 5λ₯Ό μμλλ‘ μΈμ³€λ€κ³ νλ©΄, λμμ 1, 1, 2, 2, 2, 2, 5λ₯Ό μ°¨λ‘λλ‘ λ§ν΄μΌ νλ€. λ°±μ€μ΄κ° μΈμΉλ μκ° μ£Όμ΄μ‘μ λ, λμμ΄ λ§ν΄μΌ νλ μλ₯Ό ꡬνλ νλ‘κ·Έλ¨μ μμ±νμμ€.
μ λ ₯
첫째 μ€μλ λ°±μ€μ΄κ° μΈμΉλ μ μμ κ°μ Nμ΄ μ£Όμ΄μ§λ€. Nμ 1λ³΄λ€ ν¬κ±°λ κ°κ³ , 100,000λ³΄λ€ μκ±°λ κ°μ μμ°μμ΄λ€. κ·Έ λ€μ Nμ€μ κ±Έμ³μ λ°±μ€μ΄κ° μΈμΉλ μ μκ° μ°¨λ‘λλ‘ μ£Όμ΄μ§λ€. μ μλ -10,000λ³΄λ€ ν¬κ±°λ κ°κ³ , 10,000λ³΄λ€ μκ±°λ κ°λ€.
μΆλ ₯
ν μ€μ νλμ© Nμ€μ κ±Έμ³ λ°±μ€μ΄μ λμμ΄ λ§ν΄μΌ νλ μλ₯Ό μμλλ‘ μΆλ ₯νλ€.
νμ΄
μ΄μ€ νμ μ¬μ©ν΄μΌνλ λ¬Έμ
// νμ΄ : https://whkakrkr.tistory.com
#include <bits/stdc++.h>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cout.tie(NULL);
cin.tie(NULL);
int n;
cin >> n;
priority_queue<int> left;
priority_queue<int, vector<int>, greater<>> right;
int a;
for(int i=1; i<=n; i++) {
cin >> a;
if(left.empty() || left.top()>a) {
left.push(a);
} else {
right.push(a);
}
int mid = (i+1)/2;
if(left.size() < mid) {
left.push(right.top());
right.pop();
} else if(left.size() > mid) {
right.push(left.top());
left.pop();
}
cout << left.top() << "\n";
}
return 0;
}