๋ฌธ์
๋ฐฑ์ค์ด๋ ๋์์๊ฒ "๊ฐ์ด๋ฐ๋ฅผ ๋งํด์" ๊ฒ์์ ๊ฐ๋ฅด์ณ์ฃผ๊ณ ์๋ค. ๋ฐฑ์ค์ด๊ฐ ์ ์๋ฅผ ํ๋์ฉ ์ธ์น ๋๋ง๋ค ๋์์ ์ง๊ธ๊น์ง ๋ฐฑ์ค์ด๊ฐ ๋งํ ์ ์ค์์ ์ค๊ฐ๊ฐ์ ๋งํด์ผ ํ๋ค. ๋ง์ฝ, ๊ทธ๋์ ๋ฐฑ์ค์ด๊ฐ ์ธ์น ์์ ๊ฐ์๊ฐ ์ง์๊ฐ๋ผ๋ฉด ์ค๊ฐ์ ์๋ ๋ ์ ์ค์์ ์์ ์๋ฅผ ๋งํด์ผ ํ๋ค.
์๋ฅผ ๋ค์ด ๋ฐฑ์ค์ด๊ฐ ๋์์๊ฒ 1, 5, 2, 10, -99, 7, 5๋ฅผ ์์๋๋ก ์ธ์ณค๋ค๊ณ ํ๋ฉด, ๋์์ 1, 1, 2, 2, 2, 2, 5๋ฅผ ์ฐจ๋ก๋๋ก ๋งํด์ผ ํ๋ค. ๋ฐฑ์ค์ด๊ฐ ์ธ์น๋ ์๊ฐ ์ฃผ์ด์ก์ ๋, ๋์์ด ๋งํด์ผ ํ๋ ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ 1
7
1
5
2
10
-99
7
5
์ถ๋ ฅ 1
1
1
2
2
2
2
5
์ฝ๋
#include<iostream>
#include<queue>
#include<vector>
using namespace std;
//1655๋ฒ ๊ฐ์ด๋ฐ๋ฅผ ๋งํด์
//์ต์ํ, ์ต๋ํ ์ฌ์ฉ
int main() {
cin.tie(NULL);
cout.tie(NULL);
int N,temp;
priority_queue<int> max; //์ต๋ํ ์ฐ์ ์์ ํ๋ default๋ก less<in>๋ฅผ ์ฌ์ฉ
priority_queue<int,vector<int>,greater<int>> min; //์ต์ํ
cin >> N;
for (int i = 0; i < N; i++) {
cin >> temp;
(max.size() == min.size()) ? max.push(temp) : min.push(temp);
if (!max.empty() && !min.empty()&& max.top() > min.top()) {
//์ค๊ฐ ๊ฐ์ ์์๊ฐ ๋ฌ๋ผ์ง๋ค๋ฉด ๊ฐ ๋ฐ๊พธ๊ธฐ
int maxVal, minVal;
maxVal = max.top();
minVal = min.top();
max.pop();
min.pop();
max.push(minVal);
min.push(maxVal);
}
cout << max.top()<<"\n";
}
return 0;
}
*๊ฐ๋จํ ํด์ค*
์ฌ๋ฌ๊ฐ์ง ์๊ณ ๋ฆฌ์ฆ ์ค์์ ๋ฌด์์ ์ ์ฐ๋์ง๊ฐ ํต์ฌ์ธ๋ฐ ์ฌ๊ธฐ์๋ ์ต์ํ, ์ต๋ํ์ ์ฌ์ฉํ๋ค.
๊ทธ ์ด์ ๋ ํ์ ์ฌ๋ฌ๊ฐ์ ๊ฐ ์ค ์ต๋๊ฐ ๋๋ ์ต์๊ฐ์ ์ฐพ์๋ด๋ ์ฐ์ฐ์ด ๋น ๋ฅด๊ธฐ ๋๋ฌธ์ ์ฌ๊ธฐ์ ์ฌ์ฉํ๋ฉด ๋น ๋ฅธ ์ฐ์ฐ์ด ๊ฐ๋ฅํ๋ค.
ํ์ ์ผ๋ฐ์ ์ผ๋ก ์์ ์ด์งํธ๋ฆฌ์ด๋ฏ๋ก ๋ฐฐ์ด์ ์ด์ฉํ์ฌ ๊ตฌํํ๋ค.
์ต๋ ํ์ ๋ฃจํธ ๋ ธ๋๋ก ์ฌ๋ผ๊ฐ์๋ก ์ ์ฅ๋ ๊ฐ์ด ์ปค์ง๋ ๊ตฌ์กฐ์ด๋ค.
์ต์ ํ์ ๋ฃจํธ ๋ ธ๋๋ก ์ฌ๋ผ๊ฐ์๋ก ๊ฐ์ด ์์์ง๋ ๊ตฌ์กฐ์ด๋ค.
์ด ๋ฌธ์ ์ ๊ฒฝ์ฐ ๋ฐฐ์ด์ ๋ฐํ์ผ๋ก ๋๋์ด์ ํ์ชฝ์ ์ต์ ํ, ํ์ชฝ์ ์ต๋ ํ์ ์ฌ์ฉํ์ฌ ๋น ๋ฅด๊ฒ ์ฐ์ฐํ๋ ๋ฌธ์ ์ด๋ค. ์ด ๊ฒฝ์ฐ priority_queue๋ฅผ ์ด์ฉํ์ฌ ๊ตฌํํ ์ ์๋ค. priority_queue๋ ํ์ ์ด์ฉํ์ฌ ๊ตฌํ๋์ด ์๊ณ ์ต์ ์ ์ด์ฉํ์ฌ greater<int> ๋ฐ less<int>๋ฅผ ์ด์ฉํ์ฌ ์์๊ฐ์ ์ต์ํ, ์ต๋ํ ๊ตฌ์กฐ๋ฅผ ๋ง๋ค ์ ์๋ค. ๋ฐ๋ผ์ ์ด๋ฅผ ํตํด์ ์ค๊ฐ๊ฐ์ ์ฐพ๋ ๊ฒ์ด๋ผ ๋ฐํ์ ๋๋์ด์ ์ค๋ฆ์ฐจ์, ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌ๋๋ ์ต์ํ, ์ต๋ํ์ ์ด์ฉํ๋ฉด ๋น ๋ฅด๊ฒ ํต๊ณผํ๋ ์ฝ๋๋ฅผ ๋ง๋ค ์ ์๋ค.
*์ด ๋ฐฉ๋ฒ๋ง์ด ๋ง๋ ์ ๋ต์ ์๋๋๋ค.
ํจ์ฌ ์ข๊ณ ๋น ๋ฅธ ๋ค๋ฅธ ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌํํ ์ ์์ต๋๋ค.
์๊ณ ๋ฆฌ์ฆ ๊ณต๋ถํ์๋ ๋ถ๋ค ํ์ดํ ! '0'/*
'์๊ณ ๋ฆฌ์ฆ > BaekJoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C++] BOJ 2244๋ฒ: ๋ฏผ์ฝ์ฐ์คํค ํฉ (0) | 2022.06.13 |
---|---|
[C++] BOJ 2933๋ฒ: ๋ฏธ๋ค๋ (0) | 2022.06.13 |
[C++] BOJ 3190๋ฒ: ๋ฑ (0) | 2022.03.25 |
[C++] BOJ 2480๋ฒ: ์ฃผ์ฌ์ ์ธ๊ฐ (0) | 2022.03.19 |
[C++] BOJ 1260๋ฒ: DFS์ BFS (2) | 2022.03.11 |