입력 받은 사람 수의 몸무게와 키를 이차원 배열에 저장한다.
경기 방식 중 리그 방식으로 한 번씩 비교하여 덩치가 큰지 작은지 판단한다.
일차원 rank 배열에 등수를 저장한다. rank 배열의 초기값은 1로 변경하여 다음 사람보다 덩치가 작다면 값을 1씩 증가시킨다. 덩치가 작다는 의미는 상대보다 등수가 낮다는 것이기 때문에 등수를 증가시키는 것이다.
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st;
int N = Integer.parseInt(br.readLine());
int arr[][] = new int[N][2];
int rank[] = new int[N];
for(int i=0; i<N; i++) {
st = new StringTokenizer(br.readLine());
arr[i][0] = Integer.parseInt(st.nextToken());
arr[i][1] = Integer.parseInt(st.nextToken());
rank[i] = 1;
}
for(int i=0; i<N-1; i++) {
for(int j=i; j<N-1; j++) {
if(arr[i][0]<arr[j+1][0] && arr[i][1]<arr[j+1][1]) {
rank[i]++;
}
else if(arr[i][0]>arr[j+1][0] && arr[i][1]>arr[j+1][1]) {
rank[j+1]++;
}
}
}
for(int i=0; i<N; i++) {
bw.write(String.valueOf(rank[i])+" ");
}
bw.flush();
bw.close();
}
}
[출처]
https://www.acmicpc.net/problem/7568
'CODING > BAEKJOON' 카테고리의 다른 글
[BAEKJOON] 1475번 방 번호 (0) | 2022.02.06 |
---|---|
[BAEKJOON] 1436번 영화감독 숌 (0) | 2022.02.05 |
[BAEKJOON] 2609번 최대공약수와 최소공배수 (0) | 2022.02.02 |
[BAEKJOON] 1316번 그룹 단어 체커 (0) | 2022.02.01 |
[BAEKJOON] 1977번 완전제곱수 (0) | 2022.02.01 |
댓글