반응형
문제는 다음과 같습니다.
https://www.acmicpc.net/problem/1015
1015번: 수열 정렬
P[0], P[1], ...., P[N-1]은 0부터 N-1까지(포함)의 수를 한 번씩 포함하고 있는 수열이다. 수열 P를 길이가 N인 배열 A에 적용하면 길이가 N인 배열 B가 된다. 적용하는 방법은 B[P[i]] = A[i]이다. 배열 A가 주
www.acmicpc.net
풀이 코드는 다음과 같습니다.
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main()
{
vector<pair<int,int>> v;
int n;
cin>>n;
vector<int>result(n);
for(int i{0};i<n;i++)
{
int temp;
cin>>temp;
v.push_back(make_pair(temp,i));
}
sort(v.begin(),v.end());
for(int i{0};i<n;i++)
{
result[v[i].second]=i;
}
for(auto i : result)
{
cout<<i<<" ";
}
cout<<endl;
return 0;
}
map과 vector를 동시에 사용하지 않기 위해 pair를 사용했으며, 입력 받은 후에 정렬을 사용하여 순번을 다시 정리하는 방법을 사용하였습니다.
이 때 result라는 vector의 경우에는 미리 크기를 정해주지 않으면 런타임에러( runtime error )가 발생합니다. vector라도 변수를 입력받은 후 정의해주어야 합니다.
반응형
'백준 문제풀이' 카테고리의 다른 글
4673번 : 셀프 넘버 (0) | 2022.05.06 |
---|---|
11654번 : 아스키 코드 (0) | 2022.05.06 |
1225번 : 이상한 곱셈 (0) | 2022.04.26 |
1193번 : 분수찾기 (0) | 2022.04.14 |
1924번 : 2007년 (0) | 2022.04.06 |