๋ฌธ์
๋ฐฑ์ค์ด๋ ๋์์๊ฒ "๊ฐ์ด๋ฐ๋ฅผ ๋งํด์" ๊ฒ์์ ๊ฐ๋ฅด์ณ์ฃผ๊ณ ์๋ค. ๋ฐฑ์ค์ด๊ฐ ์ ์๋ฅผ ํ๋์ฉ ์ธ์น ๋๋ง๋ค ๋์์ ์ง๊ธ๊น์ง ๋ฐฑ์ค์ด๊ฐ ๋งํ ์ ์ค์์ ์ค๊ฐ๊ฐ์ ๋งํด์ผ ํ๋ค. ๋ง์ฝ, ๊ทธ๋์ ๋ฐฑ์ค์ด๊ฐ ์ธ์น ์์ ๊ฐ์๊ฐ ์ง์๊ฐ๋ผ๋ฉด ์ค๊ฐ์ ์๋ ๋ ์ ์ค์์ ์์ ์๋ฅผ ๋งํด์ผ ํ๋ค.
์๋ฅผ ๋ค์ด ๋ฐฑ์ค์ด๊ฐ ๋์์๊ฒ 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;
}
'๐๏ธ PS (BOJ) > Linear Data Structure' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ][C++] ๋ฐฑ์ค 4358๋ฒ: ์ํํ (0) | 2024.08.24 |
---|---|
[BOJ][C++] ๋ฐฑ์ค 25192๋ฒ: ์ธ์ฌ์ฑ ๋ฐ๋ฅธ ๊ณฐ๊ณฐ์ด (0) | 2024.08.23 |
[C++][BOJ] ๋ฐฑ์ค 1822๋ฒ: ์ฐจ์งํฉ (0) | 2024.08.23 |
[BOJ][C++] ๋ฐฑ์ค 1966๋ฒ: ํ๋ฆฐํฐ ํ (0) | 2023.11.07 |
[BOJ][C++] ๋ฐฑ์ค 17299๋ฒ: ์ค๋ฑํฐ์ (0) | 2023.05.25 |