반응형
https://www.acmicpc.net/problem/7568
어떤 사람의 몸무게가 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();
}
}
반응형
'Algorithm > Baekjoon' 카테고리의 다른 글
[백준 알고리즘][자바] 1436번 : 영화감독 숌 (0) | 2022.03.06 |
---|---|
[백준 알고리즘][자바] 1018번 : 체스판 다시 칠하기 (0) | 2022.03.05 |
[백준 알고리즘][자바] 2231번 : 분해합 (0) | 2022.01.09 |
[백준 알고리즘][자바] 2798번 : 블랙잭 & 브루트 포스(Brute Force) (0) | 2021.12.31 |
[백준 알고리즘][자바] 11729번 : 하노이 탑 이동 순서 (1) | 2021.12.04 |
댓글