https://www.acmicpc.net/problem/18870
๋ฌธ์
์์ง์ ์์ N๊ฐ์ ์ขํ X1, X2, ..., XN์ด ์๋ค. ์ด ์ขํ์ ์ขํ ์์ถ์ ์ ์ฉํ๋ ค๊ณ ํ๋ค.
Xi๋ฅผ ์ขํ ์์ถํ ๊ฒฐ๊ณผ X'i์ ๊ฐ์ Xi > Xj๋ฅผ ๋ง์กฑํ๋ ์๋ก ๋ค๋ฅธ ์ขํ์ ๊ฐ์์ ๊ฐ์์ผ ํ๋ค.
X1, X2, ..., XN์ ์ขํ ์์ถ์ ์ ์ฉํ ๊ฒฐ๊ณผ X'1, X'2, ..., X'N๋ฅผ ์ถ๋ ฅํด๋ณด์.
์ ๋ ฅ
์ฒซ์งธ ์ค์ N์ด ์ฃผ์ด์ง๋ค.
๋์งธ ์ค์๋ ๊ณต๋ฐฑ ํ ์นธ์ผ๋ก ๊ตฌ๋ถ๋ X1, X2, ..., XN์ด ์ฃผ์ด์ง๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์ X'1, X'2, ..., X'N์ ๊ณต๋ฐฑ ํ ์นธ์ผ๋ก ๊ตฌ๋ถํด์ ์ถ๋ ฅํ๋ค
ํ์ด
1. ๋ฐ์ ๊ฐ๋ค์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ ํ ์ค๋ณต์ ์ ๊ฑฐํ๋ค
2. ์ ๋ ฌํ ๊ฐ์ ์๋ฅผ ํ ๋นํ๋ค (์๋ฃ๊ตฌ์กฐ map ์ฌ์ฉ)
3. ๋ฐ์ ๊ฐ๋ค์ ์ํํ๋ฉฐ ํ ๋น๋ ๊ฐ์ ์ถ๋ ฅํ๋ค
์๋ฅผ๋ค์ด, ์์ 1์ธ ์์ ์ํฉ์์
2 4 -10 4 -9
์ด๊ฑธ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ๊ณ ์ค๋ณต์ ์ ๊ฑฐํ๋ฉด {-10, -9, 2, 4} ์ด๋ค.
์์๋๋ก 0๋ถํฐ 3๊น์ง์ ๊ฐ์ ํ ๋นํ๋ฉด ์๋์ฒ๋ผ ๋๋ค.
map = [{-10, 0}, {-9, 1}, {2, 2}, {4, 4}]
์ด์ ๋ค์ ์๋ ์ ๋ ฅ๊ฐ {2, 4, -10, 4, -9} ๋ฅผ ๋๋ฉฐ ํ ๋น๋ ๊ฐ์ ์ถ๋ ฅํ๋ฉด
{2, 4, 0, 4, 1}
#include <iostream>
#include <vector>
#include <algorithm>
#include <map>
using namespace std;
int main() {
int n;
cin >> n;
vector<int> input (n);
vector<int> sortedInput(n);
for(int i=0; i<n; i++) {
cin >> input[i];
sortedInput[i] = input[i];
}
map<int, int> m;
int cur = 0;
sort(sortedInput.begin(), sortedInput.end());
sortedInput.erase(unique(sortedInput.begin(), sortedInput.end()), sortedInput.end());
for(int i : sortedInput) {
m.insert({i,cur});
cur++;
}
vector<int> answer;
for(int i : input) {
answer.push_back(m[i]);
}
for(int i : answer) {
cout << i << " ";
}
return 0;
}
'๐ BOJ > Class 3' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ][C++] ๋ฐฑ์ค 1389๋ฒ: ์ผ๋น ๋ฒ ์ด์ปจ์ 6๋จ๊ณ ๋ฒ์น (0) | 2023.04.03 |
---|---|
[BOJ][C++] ๋ฐฑ์ค 9375๋ฒ: ํจ์ ์ ์ ํด๋น (0) | 2023.03.31 |
[BOJ][C++] ๋ฐฑ์ค 17219๋ฒ: ๋น๋ฐ๋ฒํธ ์ฐพ๊ธฐ (0) | 2023.03.30 |
[BOJ][C++] ๋ฐฑ์ค 1541๋ฒ: ์์ด๋ฒ๋ฆฐ ๊ดํธ (0) | 2023.03.28 |
[BOJ][C++] ๋ฐฑ์ค 11727๋ฒ: 2xn ํ์ผ๋ง 2 (0) | 2023.03.27 |