
이 문제에서 덩치가 크다의 기준은 키와 몸무게 모두 상대방보다 클 때를 말한다.
or 아니라 and 인것.
당연히 키와 몸무게를 담는 2차원 배열을 생성한 뒤, 이중 반복문을 이용하여 각 배열의 인덱스를 모두 탐색하는 방법이다.
rank = 1 부터 시작하여 해당 사람보다 덩치가 큰 사람이 있을 경우 해당 사람의 rank 를 증가시켜 주면 된다.
왜냐하면 해당 문제에는 공동 'N등' 이 존재함
import java.util.Scanner;
public class Better_Physical {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int[][] arr = new int [N][2];
for(int i = 0; i<N; i++){
arr[i][0] = sc.nextInt();
arr[i][1] = sc.nextInt();
}
//[0,0],[0,1]은 같은 사람 비교해야 하는 사람은??
//[1,0],[1,1]인 사람하고 비교해 함
for (int i = 0; i<N; i++){
int rank = 1;
for (int j = 0; j<N; j++){
if(i==j) continue;
if (arr[i][0]<arr[j][0] && arr[i][1] < arr[j][1]){
rank ++;
}
}
/* 3
55 185 = 0,0 / 0,1
58 183 = 1,0 / 1,1
88 186 = 2,0 / 2,1
0,0 < 1,0 && 0,1 < 1,1 = !! 유지
0,0 < 2,0 & 0,1 < 2,1 = 1번 남자 랭크 1 증가
1,0 < 2,0 & 1,1 < 2,1 = 2번 랭크 1 증가
2,0 < 2,0 = if조건에서 걸려서 반복문 종료
정답은 2 2 1
*/
System.out.print(rank + " ");
}
}
}