공부하는 블로그

Algorithm | Q.7568 - 덩치 본문

알고리즘 공부

Algorithm | Q.7568 - 덩치

치킨닮은닭 2020. 6. 16. 23:58
 

7568번: 덩치

우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x,y)로 표시된다. 두 사람 A 와 B의 덩�

www.acmicpc.net

 각 인원마다 키와 몸무게가 주어진다. 이 때 덩치 순서를 출력하는 문제이다. 덩치를 비교할 때에는 키와 몸무게가 모두 비교 대상보다 커야 덩치가 크다고 할 수 있다. 만약 키는 더 크지만 몸무게는 더 적게 나간다면 덩치는 비교할 수 없어 같은 순위로 기록되게 된다.

import java.util.Scanner;

public class Main {

  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();
    int[][] info = new int[n][2];
    int[] rank = new int[n];

    for (int i = 0; i < n; i++) {
      info[i][0] = sc.nextInt();  // 몸무게
      info[i][1] = sc.nextInt();  // 키

      rank[i] = 1;  // rank 초기화
    }
    sc.close();

    for (int i = 0; i < n; i++) {
      for (int j = 0; j < n; j++) {
        if(info[i][0] < info[j][0] && info[i][1] < info[j][1]) {  // 키와 몸무게가 모두 작다면
          rank[i]++;  // 순위를 증가시킨다.
        }
      }
    }

    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < n; i++) {
      sb.append(rank[i] + " ");
    }

    System.out.println(sb.toString());
  }
}

 이중 for문을 이용하여 한 사람의 덩치 순위를 구하려면 그 사람을 제외한 모든 사람들과 비교하여 rank[]에 기록한다. 브루트 포스를 이용하여 간단하게 해결할 수 있는 문제이다.

'알고리즘 공부' 카테고리의 다른 글

Baekjoon | Q.2231 - 분해합  (0) 2020.06.16
Algorithm | Brute Force & Backtracking  (0) 2020.06.16
Baekjoon | Q.11047 - 동전 0  (0) 2020.06.16
Baekjoon | Q. 1912 - 연속합  (0) 2020.06.16
Algorithm | Binary Search  (0) 2020.06.12
Comments