최대 1 분 소요

7568

문제

입력으로 몸무게와 키가 주어졌을 때, 키와 몸무게가 모두 큰 사람은 작은 사람보다 덩치가 크다고 정의.

처음에 풀 때 덩치가 가장 큰 사람부터 구해서 순차적으로 1씩 더해주려고 했지만, 논리가 떠오르지 않았다. 힌트를 얻기 위해 다른 사람의 풀이를 보니 훨씬 간단하게 푸는 방법이 있었다. 키와 몸무게가 모두 큰 사람이 있다면 rank 변수에 1씩 더해주기만 하면 끝이다.

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        int n = scanner.nextInt();
        int[][] info = new int[n][2];
        
        for (int i = 0; i < n; i++) {
            info[i][0] = scanner.nextInt();
            info[i][1] = scanner.nextInt();
        }
        
        for (int i = 0; i < n; i++) {
            int rank = 1;
            for (int j = 0; j < n; j++) {
                if (i == j) {
                    continue;
                }
                
                if (info[i][0] < info[j][0] &&
                   info[i][1] < info[j][1]) {
                    rank++;
                }
            }
            System.out.print(rank + " ");
        }
    }
}

댓글남기기