CS ﹒ Algorithm/Baekjoon
JAVA 백준 문제풀이 (20) 7568: 덩치
양또띠
2022. 7. 16. 11:16
브루트포스 알고리즘 문제이기 때문에 크게 머리 싸맬 일은 없다.
그냥 문제를 잘 읽고 그대로 코드로 구현하려고 하면 된다.
이 문제 속 세상은 아주 편견이 없기 때문에 (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+" "); // 결과 출력
}
}
}
좋아좋아.