[ 문제 ]
[ 접근방법 ]
배열을 오름차순 정렬한 후, 각 원소가 정렬된 배열에서 차지하는 위치(index)를 출력해주면 된다.
입력을 받을 때 각 원소의 값(value)과 위치(index)를 pair에 넣고,
b[a[i].second] = i 를 통해 이를 구현한다.
[ 소스코드 ]
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int n;
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cin >> n;
vector<pair<int, int>> a(n);
vector<int> b(n);
for(int i = 0; i < n; i++){
cin >> a[i].first;
a[i].second = i;
}
sort(a.begin(), a.end());
for(int i = 0; i < n; i++){
b[a[i].second] = i;
}
for(int i = 0; i < n; i++){
cout << b[i] << " ";
}
return 0;
}
'PS' 카테고리의 다른 글
[ 백준 / C++ ] 2592 : 대표값 (0) | 2024.09.25 |
---|---|
[ 백준 / C++ ] 1072 : 게임 (1) | 2024.09.24 |
[ 백준 / C++ ] 15990 : 1, 2, 3 더하기 5 (0) | 2024.09.06 |
[ 백준 / C++ ] 11505 : 구간 곱 구하기 (0) | 2024.09.04 |
[ 백준 / C++ ] 1043 : 거짓말 (0) | 2024.08.30 |