본문 바로가기
Algorithm/Baekjoon

[백준 알고리즘][자바] 7568번 : 덩치

by hyunipad 2022. 1. 9.
반응형

https://www.acmicpc.net/problem/7568

 

7568번: 덩치

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

www.acmicpc.net

어떤 사람의 몸무게가 x kg이고, 키가 y cm 라면 이 사람의 덩치는 (x, y)로 표시됩니다.

두 사람 A와 B의 덩치가 각각 (x, y) , (p, q)라고 할 때, x > p 그리고 y > q이라면 A의 덩치가 B보다 더 크다고 말합니다.

덩치는 키와 몸무게 모두 커야하며 한쪽만 클 때는 덩치가 크다는 것으로 인정하지 않습니다.

 

N명의 집단에서 자신보다 더 큰 덩치의 사람이 k명이라면 그 사람의 덩치 등수는 k+1이 됩니다.(같은 등수 가능)

입력에는 전체 사람의 수 N과 각 사람의 몸무게와 키를 나타내고, 출력에는 사람의 덩치 등수를 나열합니다.

각 사람에 대해서 전체 사람의 수 N을 루프를 돌며 자신보다 큰 덩치를 가진 사람 수만 카운트해주면 되겠습니다.

 

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

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));

		int N = Integer.parseInt(br.readLine());
		String[] xy_array = new String[N];
		
		for(int i = 0 ; i < N ; i++) {
			xy_array[i] = br.readLine();
		}
		
		for(int i = 0 ; i < N ; i++) {
			int rank = 0;
			int x = Integer.parseInt(xy_array[i].split(" ")[0]); // 몸무게
			int y = Integer.parseInt(xy_array[i].split(" ")[1]); // 키
			
			for(int j = 0 ; j < N ; j++) {
				if(i != j) {
					int other_x = Integer.parseInt(xy_array[j].split(" ")[0]); // 몸무게
					int other_y = Integer.parseInt(xy_array[j].split(" ")[1]); // 키
					
					if(other_x > x && other_y > y) {
						rank++;
					}
				}
			}
			
			bw.write(String.valueOf(rank + 1) + " ");
		}
		
		br.close();
		bw.flush();
		bw.close();

	}

}

반응형

댓글