백준 algorithm
백준 1015 - 수열 정렬
cosmohoo
2020. 7. 15. 23:43
반응형

=> pair를 사용하여 문제를 해결하였습니다.
=> pair.first : 원소 값
=> pair.secodn : 원래의 INDEX 값
=> 위와 같이 설정을 하고 문제를 풀었습니다.
- 입력받은 pair형 vector를 sort함수를 하여 정렬시킵니다.
- 정렬된 배열을 처음부터 읽으며, second 값을 기준으로 새로운 배열의 INDEX에 값을 대입합니다.
- ans [arr [i]. second]=i;
위와 같은 논리로 코드를 짰습니다.
*pair형 배열을 만드는 방법을 찾지 못해, pair형 vector로 답을 생성하였습니다.
<code>
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
vector<pair<int, int>> arr;
int ans[1001];
int N;
cin >>N;
for(int i=0; i<N; i++)
{
int tmp;
cin >> tmp;
pair<int, int> tmpPair = make_pair(tmp, i);
arr.push_back(tmpPair);
}
sort(arr.begin(), arr.end());
for(int i=0; i<N; i++)
{
ans[arr[i].second]=i;
}
for(int i=0; i<N; i++)
{
cout<< ans[i]<<" ";
}
return 0;
}
반응형