[붙끝코] 7일차 (백준 7568번)

Burpeeeee·2024년 9월 15일
post-thumbnail

📌 문제 탐색하기

input

  1. 사람 수 N (2<= n && n<= 50)
  2. 키와 몸무게

📌 코드 설계하기

키와 몸무게 두개의 조건이 모두 클 때에 '덩치가 크다'라고 정의.

  • N이 최대 50이기 때문에 브루트 포스(O(N^2)) 해도 충분함
    1. 입력
  • 첫 줄에서 사람의 수 N을 입력.
  • 각 사람의 몸무게와 키를 저장하기 -> 2차원 배열 arr을 생성.

2. rank 계산
덩치의 순의를 rank라고 정의.

  • 각 사람의 초기 랭크를 1로 설정합니다.
  • 이중 반복문을 사용하여 i와 j 번째 사람과 비교 (각각의 사람들과 비교)
    ->자신을 제외하고 만약 다른 사람이 몸무게와 키가 모두 크다면 현재 사람의 랭크를 증가

3. 출력
StringBuilder를 이용

📌 시도 회차 수정 사항

📌 정답 코드

package day7;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class BJ_7568 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();

        int n = Integer.parseInt(br.readLine());

        int [][] arr= new int[n][2];

        for(int i = 0; i < n; i++) {
            StringTokenizer st = new StringTokenizer(br.readLine());
            arr[i][0] = Integer.parseInt(st.nextToken()); // 몸무게
            arr[i][1] = Integer.parseInt(st.nextToken()); //키
        }

        for(int i = 0; i < n; i++) {
            int rank=1;
            for(int j = 0; j < n; j++) {
                if(i==j) continue;
                if(arr[i][0]<arr[j][0]&&arr[i][1]<arr[j][1]) rank++;

            }
            sb.append(rank).append(" ");
        }

        System.out.println(sb);

    }
}

profile
? 이 가득하지만 곧 !이 될

0개의 댓글