๐งจ ๋ฌธ์ ์ถ์ฒ
๋ฌธ์ ์ถ์ฒ : ๋ฐฑ์ค
๋ฌธ์ ๋์ด๋ : ์ค๋ฒ 5
๋ฌธ์ ๋งํฌ : www.acmicpc.net/problem/2751
2751๋ฒ: ์ ์ ๋ ฌํ๊ธฐ 2
์ฒซ์งธ ์ค์ ์์ ๊ฐ์ N(1 ≤ N ≤ 1,000,000)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์๋ ์ซ์๊ฐ ์ฃผ์ด์ง๋ค. ์ด ์๋ ์ ๋๊ฐ์ด 1,000,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์ ์์ด๋ค. ์๋ ์ค๋ณต๋์ง ์๋๋ค.
www.acmicpc.net
๐งจ ์๊ณ ๋ฆฌ์ฆ ์ ํ ๋ฐ C++ ์ฝ๋
๋ฌธ์ ๊ทธ๋๋ก ์๋ฅผ ์ ๋ ฌํ๋ ๋ฌธ์ ์๊ณ , 2750๋ฒ(์ ์ ๋ ฌํ๊ธฐ) ๋ฌธ์ ์ ๋นํด ์ ๋ ฌํ ๋ฐ์ดํฐ๊ฐ ๋ง์์ ธ ์๊ฐ์ด ๋ถ์กฑํ๋ค. 2750๋ฒ์ O(n^2) ์ ๋ ฌ๋ก ํ์ด๋ ํต๊ณผ๋์์ง๋ง 2751์ ์๊ฐ์ด๊ณผ ์ค๋ฅ๊ฐ ๋๋ ๊ฑธ ๋ณด๋ O(nlogn)์ ์๊ตฌํ๋ ๋ฌธ์ ์ด๋ค. ํต ์ ๋ ฌ์ ๋ฐ์ดํฐ ์ ๋ ฌ ์ํ์ ๋ฐ๋ผ n์ ๊ณฑ ์๊ฐ์ด ๊ฑธ๋ฆฌ๊ธฐ๋ ํด์ ์์ ํ ํ์ ๋ ฌ์ ์ ํํ๋ค. (๋ณํฉ์ ๋ ฌ๋ก๋ ํ๋ ค๊ณ ํ๋๋ฐ ์ด์ํ๊ฒ ์๊พธ ๋ฉ๋ชจ๋ฆฌ ์ด๊ณผ๊ฐ ๋๋ค.. ์ฝ๋์ ๋ฌธ์ ์๋๊ฑฐ ๊ฐ์์ ์ผ๋จ ํจ์ค..)
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> heapsort(vector<int> L) {
make_heap(L.begin(), L.end());
for (auto last = L.end(); last != L.begin(); last--) {
pop_heap(L.begin(), last);
}
return L;
}
int main(void) {
int n;
cin >> n;
vector<int> target(n);
for (int i = 0; i < n; i++) {
cin >> target[i];
}
// sort
vector<int> result = heapsort(target);
// output
for (int i = 0; i < n; i++) {
printf("%d\n", result[i]);
}
return 0;
}
์ด ๋ฌธ์ ๋.. ์ ๋ง ์๊ฐ์ด๊ณผ๊ฐ ๊ด๊ฑด์ด์๋ค. ์์ ์ ๊ต์๋์ด cin, cout ๋ง๊ณ scanf ์ฌ์ฉํ๋ผ ํ์ จ๋๋ฐ ๊ทธ ์ด์ ๋ฅผ ์ค๋ ๊นจ๋ฌ์๋ค.. ^^
scanf ์ฐ๋ฉด vector ์ฐ๊ธฐ ์ ๋งคํด์ ์ ์ผ๋๋ฐ ์ญ์ ๊ต์๋์ ์ฐ๋ฆฌํํ ์ด์ํ๊ฑธ ์๋ ค์ฃผ์ง ์์ผ์ จ๋ค,, ๊ตฌ๊ธ๋งํ ์ ๋ณด์ ์ํ๋ฉด cin, cout์ด scanf, printf ๋ณด๋ค 3~5๋ฐฐ ๋ ๋๋ฆฌ๋ค๊ณ ํ๋ค. ์ด๋ฒ์ endl์ "\n"์ผ๋ก ๋ฐ๊ฟ ํต๊ณผํ ๊ฒ์ผ๋ก ๋ง-์กฑscanf๋ ๋ค์์ ๋ง ์ก๊ณ ์จ๋ณธ๋ค.. ๋น์ฃผ์ผ ์คํ๋์ค์์ ์ด์ํ๊ฒ scanf ์ค๋ฅ๊ฐ ๋ง์ด ๋๋ค.. ์ด๊ฑธ ๊ฐ์ํ์๋ ์๊ณ ์ฐธ.. (๊ต์๋ ๊ทผ๋ฐ ๋ฒกํฐ๋ ์ฐ๋ผ๊ณ ํ์ จ์์์..)
- O(nlogn) ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ ์ฌ์ฉ → ํ์ ๋ ฌ, ๋ณํฉ์ ๋ ฌ, ํต์ ๋ ฌ ๊ฐ๋ฅ
- endl ์๊ฐ ๋ง์ด ๋บ๊น → "\n" ์ฌ์ฉํ๊ธฐ
- cin, cout ๋ณด๋จ scanf, printf ์ฐ๊ธฐ
- ์๊ฐ์ด๊ณผ ์ค๋ฅ ๋๋ฌด ๋ง์ด ๋ธ
'Problem Solving > BOJ ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ] ๊ธฐ๋ณธ๊ตฌํ๋ฌธ์ - 1550๋ฒ, 8393๋ฒ, 10869๋ฒ, 17256๋ฒ (C++ ์ฝ๋) (0) | 2021.01.07 |
---|---|
[BOJ] 11650๋ฒ - ์ขํ ์ ๋ ฌํ๊ธฐ (0) | 2021.01.07 |
[BOJ] 11651๋ฒ - ์ขํ ์ ๋ ฌํ๊ธฐ 2 (0) | 2021.01.06 |
[BOJ] 2752๋ฒ - ์ธ ์ ์ ๋ ฌ (0) | 2021.01.02 |
[BOJ] 2750๋ฒ - ์ ์ ๋ ฌํ๊ธฐ (0) | 2021.01.02 |