내가 생각했을때 문제에서 원하는부분
첫 줄에는 전체 사람의 수 N이 주어진다.
그리고 이어지는 N개의 줄에는 각 사람의 몸무게와 키를 나타내는 양의 정수 x와 y가 하나의 공백을 두고 각각 나타난다.
여러분은 입력에 나열된 사람의 덩치 등수를 구해서 그 순서대로 첫 줄에 출력해야 한다.
단, 각 덩치 등수는 공백문자로 분리되어야 한다.
내가 이 문제를 보고 생각해본 부분
입력 처리: BufferedReader를 사용하여 전체 사람의 수와 각 사람의 몸무게와 키를 입력받는다.
등수 계산: 두 사람의 덩치를 비교하여 더 큰 덩치의 수를 세고, 이를 바탕으로 각 사람의 등수를 결정해준다.
결과 출력: StringBuilder를 이용하여 최종 결과를 문자열로 만들어 출력한다.
코드로 구현
package baekjoon.baekjoon_26;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
// 백준 7568번 문제
public class Main933 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int[][] people = new int[N][2];
// 입력 받기
for(int i = 0; i < N; i++) {
String[] input = br.readLine().split(" ");
people[i][0] = Integer.parseInt(input[0]); // 몸무게
people[i][1] = Integer.parseInt(input[1]); // 키
}
// 덩치 등수 계산
int[] ranks = new int[N];
for(int i = 0; i < N; i++) {
int rank = 1; // 초기 등수는 1
for(int j = 0; j < N; j++) {
// A의 덩치가 B의 덩치보다 크면 rank 증가
if(people[i][0] < people[j][0] && people[i][1] < people[j][1]) {
rank++;
}
}
ranks[i] = rank; // 각 사람의 등수 저장
}
// 결과 출력
StringBuilder sb = new StringBuilder();
for(int i = 0; i < N; i++) {
sb.append(ranks[i]).append(" ");
}
System.out.println(sb.toString().trim()); // 최종 결과 출력
br.close();
}
}
코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.