백준 덩치

KIMYEONGJUN·2025년 2월 15일
0
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개의 댓글

관련 채용 정보