본문 바로가기

PS

[ 백준 / C++ ] 1015 : 수열 정렬

[ 문제 ]

 

1015번: 수열 정렬 (acmicpc.net)

 

[ 접근방법 ]

 

배열을 오름차순 정렬한 후, 각 원소가 정렬된 배열에서 차지하는 위치(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