백준 덩치

KIMYEONGJUN·2025년 2월 15일
post-thumbnail

문제

내가 생각했을때 문제에서 원하는부분

첫 줄에는 전체 사람의 수 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();
    }
}

마무리

코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.

profile
Junior backend developer

0개의 댓글