백준
/<> 백준 1015번 : 수열 정렬 (C언어)
모나오랭
2024. 8. 2. 02:24
https://www.acmicpc.net/problem/1015
문제를 이해하는게 제일 어려운 부분입니다. 진짜 간단하게 요약하자면, 입력한 숫자가 몇 번째로 큰 지 구하는 겁니다..ㅋㅋ 예제 입력 2로 설명하자면, 수열 A <2, 1, 3, 1>을 작은 순위로 나타내면 <2, 0, 3, 1>입니다. 이게 P 입니다. 서로 같은 숫자일 땐 오른쪽 애가 더 큰걸로 간주합니다(사전순이기 때문!).
1. 행렬을 저장합니다.
2. 순위를 저장하는 행렬에, 반복문을 통해 비교하여 해당 인덱스의 숫자가 얼마나 큰지 저장합니다.
<코드>
#include <stdio.h>
int p[50] = {0,};
int main() {
int n;
scanf("%d", &n);
int a[n];
for(int i = 0; i < n; i++) scanf("%d", &a[i]);
for(int i = 0; i < n - 1; i++) {
for(int j = i + 1; j < n; j++) {
if(a[i] <= a[j]) p[j]++;
else p[i]++;
}
}
for(int i = 0; i < n; i++) printf("%d ", p[i]);
printf("\n");
return 0;
}