본문 바로가기
CODING/BAEKJOON

[BAEKJOON] 7568번 덩치

by snow_white 2022. 2. 3.


입력 받은 사람 수의 몸무게와 키를 이차원 배열에 저장한다.

경기 방식 중 리그 방식으로 한 번씩 비교하여 덩치가 큰지 작은지 판단한다.

일차원 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

 

7568번: 덩치

우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩

www.acmicpc.net

 

댓글