본문 바로가기
알고리즘 문제 풀이

[백준] - 수열 정렬 - 복습

by pinok1o 2021. 1. 31.

https://www.acmicpc.net/problem/1015

시간 제한이 2초이다
배열 전체를 돌면서 가장 작은 값을 하나씩 찾으면 되는데..

배열의 인덱스와 값을 pair로 묶어서 sorting해서 찾을 수도 있다

 

#include <iostream>
#include <algorithm>
#include <string.h>

using namespace std;

int main()
{
    int N;
    int A[51];
    int P[51];

    cin >> N;
    for (int j = 0; j < N; j++)
    {
        cin >> A[j];
    }

    for (int j = 0; j < N; j++)
    {
        //가장 작음값 찾기
        int min = 1001;
        int minIndex = -1;
        for (int k = 0; k < N; k++)
        {
            if (min > A[k]) {
                minIndex = k;
                min = A[k];
            }
        }
        P[minIndex] = j;
        A[minIndex] = 1002;

    }

    for (int j = 0; j < N; j++)
        cout << P[j] << " ";

    cout << endl;

    return 0;
}



댓글