브루트포스 알고리즘 문제이기 때문에 크게 머리 싸맬 일은 없다.
그냥 문제를 잘 읽고 그대로 코드로 구현하려고 하면 된다.
이 문제 속 세상은 아주 편견이 없기 때문에 (58, 183)인 사람과 (60, 175)인 사람의 덩치 등수를 같다고 해준다.
키는 앞사람이 8cm나 크지만 몸무게가 2kg 적게 나가기 때문이다.
즉, 내가 누군가와 비교했을 때 나의 등수가 낮아지려면 키와 몸무게가 모두 상대보다 작아야 한다.
더 어렵게 설명할 것도 없다. 너무 쉬운 문제니까 바로 코드로 넘어가자.
꼭 BufferedReader를 사용해야하는 것은 아니지만 시간 초과 나왔을 때 Scanner 일일히 바꿔주고 있으면 스트레스 받기 때문에 어지간하면 그냥 BufferedReader를 쓰자..
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int T = Integer.parseInt(br.readLine()); // 테스트 횟수
int[] height = new int[T]; // 몸무게
int[] weight = new int[T]; // 키
int[] rating = new int[T]; // 등수
for(int i=0; i<T; i++) { // 테스트 횟수만큼 반복적으로 입력 받음
String[] bulkInput = br.readLine().split(" ");
height[i] = Integer.parseInt(bulkInput[0]);
weight[i] = Integer.parseInt(bulkInput[1]);
}
for(int i=0; i<T; i++) {
rating[i] = 1; // 기본 등수는 1에서 시작
for(int j=0; j<T; j++) {
if ( height[i] < height[j] && weight[i] < weight[j] ) {
rating[i]++; // 만약 비교 대상이 몸무게, 키 모두 나보다 크다면 등수 ++
}
}
}
for (int result : rating) {
System.out.printf(result+" "); // 결과 출력
}
}
}
좋아좋아.
'CS ﹒ Algorithm > Baekjoon' 카테고리의 다른 글
JAVA 백준 문제풀이 (22) 9184: 신나는 함수 실행 (0) | 2022.07.18 |
---|---|
JAVA 백준 문제풀이 (21) 10815: 숫자 카드 (0) | 2022.07.17 |
JAVA 백준 문제풀이 (19) 2751: 수 정렬하기2 (0) | 2022.07.15 |
JAVA 백준 문제풀이 (18) 2750:수 정렬하기 (0) | 2022.07.14 |
JAVA 백준 문제풀이 (17) 2231:분해합 (0) | 2022.07.13 |