[Java][백준] #7568 - 덩치

배수연·2024년 5월 24일

algorithm

목록 보기
33/45

🔗 백준 7568 - 덩치

문제

알고리즘 분류

  • 구현
  • 브루트포스 알고리즘

풀이

1. 배열 입력

  • 인원 수 만큼 2차원 배열을 만들어 0번에 몸무게, 1번에 키 저장
        int n = Integer.parseInt(br.readLine());
        int[][] arr = new int[n][2]; // 0 : weight, 1 : height
        for(int i = 0; i<n; i++){
            st = new StringTokenizer(br.readLine());
            arr[i][0] = Integer.parseInt(st.nextToken());
            arr[i][1] = Integer.parseInt(st.nextToken());
        }

2. 브루트포스

  • 처음엔 1위로 시작
  • 자신을 제외한 다른 사람들과 키, 몸무게를 비교하여 덩치가 작다면(몸무게, 키 모두 작다면) 등수를 뒤로 한 칸씩 미룬다.
        for(int i = 0 ; i<n; i++){
            int rank = 1;
            for (int j = 0; j<n; j++){
                if(i == j) continue;
                else if(arr[i][0] < arr[j][0] && arr[i][1] < arr[j][1])
                    rank++;
            }
            sb.append(rank).append(" ");
        }

전체 코드

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

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st;
        int n = Integer.parseInt(br.readLine());
        int[][] arr = new int[n][2]; // 0 : weight, 1 : height
        for(int i = 0; i<n; i++){
            st = new StringTokenizer(br.readLine());
            arr[i][0] = Integer.parseInt(st.nextToken());
            arr[i][1] = Integer.parseInt(st.nextToken());
        }
        StringBuilder sb = new StringBuilder();
        for(int i = 0 ; i<n; i++){
            int rank = 1;
            for (int j = 0; j<n; j++){
                if(i == j) continue;
                else if(arr[i][0] < arr[j][0] && arr[i][1] < arr[j][1])
                    rank++;
            }
            sb.append(rank).append(" ");
        }
        System.out.println(sb);
    }
}

0개의 댓글