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;
}
'백준' 카테고리의 다른 글
/<> 백준 11650번 : 좌표 정렬하기 (C언어) (0) | 2024.08.02 |
---|---|
/<> 백준 1057번 : 토너먼트 (C언어) (1) | 2024.08.02 |
/<> 백준 1913번 : 달팽이 (C언어) (0) | 2024.08.02 |
/<> 백준 18110 : solved.ac (C언어) (0) | 2024.07.30 |
/<> 백준 1932번 : 정수 삼각형 (C언어) (0) | 2024.07.30 |