https://www.acmicpc.net/problem/7568
Idea
전체 집단 사람들의 순위를 1로 초기화 시켜주고, 만약 나보다 덩치가 큰 사람이 있으면 순위를 1만큼 올려주는 방식으로 문제를 해결했다.
덩치가 큰 사람이라고 하면 X
값과 Y
값이 나보다 큰 사람을 말한다.
if (arr[i][0] < arr[j][0] && arr[i][1] < arr[j][1])
Code
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
int arr[51][2] = { 0, };
int dp[51];
int N;
scanf("%d", &N);
for (int i = 0; i < N; i++) {
for (int j = 0; j < 2; j++) {
scanf("%d", &arr[i][j]);
}
}
for (int i = 0; i < N; i++) {
dp[i] = 1;
for (int j = 0; j < N; j++) {
if (arr[i][0] < arr[j][0] && arr[i][1] < arr[j][1]) {
dp[i]++;
}
}
}
for (int i = 0; i < N; i++) {
printf("%d ", dp[i]);
}
return 0;
}