덩치

08 July 2019

문제 : https://www.acmicpc.net/problem/7568

이번은 모든 사람을 비교하여 덩치 등수를 구하는 문제를 풀어보도록 하겠습니다.

import java.util.Scanner;

public class Main {

    public static void main(String args[]) {

        Scanner sc = new Scanner(System.in);

        int size = sc.nextInt();
        Node[] nodes = new Node[size];
        int[] ranks = new int[size];

        for (int i = 0; i < size; i++) {
            nodes[i] = new Node(sc.nextInt(), sc.nextInt());
        }

        for (int i = 0; i < size; i++) {
            ranks[i]++;
            for (int k = 0; k < size; k++) {
                if (nodes[i].weight < nodes[k].weight && nodes[i].height < nodes[k].height) {
                    ranks[i]++;
                }
            }
        }

        for (int i = 0; i < size; i++) {
            System.out.print(ranks[i] + " ");
        }

    }
}

class Node {

    int weight;
    int height;

    Node(int weight, int height) {
        this.weight = weight;
        this.height = height;
    }

    @Override
    public String toString() {
        return "Node{" +
                "weight=" + weight +
                ", height=" + height +
                '}';
    }
}
이번은 모든 수를 대입하는 방식인 브루트포스를 이용해 문제를 풀어보도록 하겠습니다.
각각의 덩치를 비교해서 해당 값보다 덩치가 큰 값이 있으면 해당 값에 rank를 더하는 방식으로 진행합니다.
두개의 for문을 이용해서, 간단히 문제를 풀 수 있습니다.