백준 문제풀이

1015번 : 수열 정렬

하다블 2022. 4. 27. 18:54
반응형

문제는 다음과 같습니다.

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