๐Ÿ“– [๋ฐฑ์ค€์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ’€์ด] Q.7568 ๋ฉ์น˜ ๋ฌธ์ œ ํ’€์ด

๐Ÿ“– ๋ฌธ์ œ

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

์šฐ๋ฆฌ๋Š” ์‚ฌ๋žŒ์˜ ๋ฉ์น˜๋ฅผ ํ‚ค์™€ ๋ชธ๋ฌด๊ฒŒ, ์ด ๋‘ ๊ฐœ์˜ ๊ฐ’์œผ๋กœ ํ‘œํ˜„ํ•˜์—ฌ ๊ทธ ๋“ฑ์ˆ˜๋ฅผ ๋งค๊ฒจ๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ์–ด๋–ค ์‚ฌ๋žŒ์˜ ๋ชธ๋ฌด๊ฒŒ๊ฐ€ x kg์ด๊ณ  ํ‚ค๊ฐ€ y cm๋ผ๋ฉด
์ด ์‚ฌ๋žŒ์˜ ๋ฉ์น˜๋Š” (x,y)๋กœ ํ‘œ์‹œ๋œ๋‹ค. ๋‘ ์‚ฌ๋žŒ A ์™€ B์˜ ๋ฉ์น˜๊ฐ€ ๊ฐ๊ฐ (x,y), (p,q)๋ผ๊ณ  ํ•  ๋•Œ x>p ๊ทธ๋ฆฌ๊ณ  y>q ์ด๋ผ๋ฉด ์šฐ๋ฆฌ๋Š” A์˜ ๋ฉ์น˜๊ฐ€
B์˜ ๋ฉ์น˜๋ณด๋‹ค "๋” ํฌ๋‹ค"๊ณ  ๋งํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์–ด๋–ค A, B ๋‘ ์‚ฌ๋žŒ์˜ ๋ฉ์น˜๊ฐ€ ๊ฐ๊ฐ (56,177), (45,165) ๋ผ๊ณ  ํ•œ๋‹ค๋ฉด A์˜ ๋ฉ์น˜๊ฐ€ B๋ณด๋‹ค ํฐ ์…ˆ์ด ๋œ๋‹ค.
๊ทธ๋Ÿฐ๋ฐ ์„œ๋กœ ๋‹ค๋ฅธ ๋ฉ์น˜๋ผ๋ฆฌ ํฌ๊ธฐ๋ฅผ ์ •ํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ๋„ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‘ ์‚ฌ๋žŒ C์™€ D์˜ ๋ฉ์น˜๊ฐ€ ๊ฐ๊ฐ (45, 181), (55,173)์ด๋ผ๋ฉด ๋ชธ๋ฌด๊ฒŒ๋Š” D๊ฐ€
C๋ณด๋‹ค ๋” ๋ฌด๊ฒ๊ณ , ํ‚ค๋Š” C๊ฐ€ ๋” ํฌ๋ฏ€๋กœ, "๋ฉ์น˜"๋กœ๋งŒ ๋ณผ ๋•Œ C์™€ D๋Š” ๋ˆ„๊ตฌ๋„ ์ƒ๋Œ€๋ฐฉ๋ณด๋‹ค ๋” ํฌ๋‹ค๊ณ  ๋งํ•  ์ˆ˜ ์—†๋‹ค.

N๋ช…์˜ ์ง‘๋‹จ์—์„œ ๊ฐ ์‚ฌ๋žŒ์˜ ๋ฉ์น˜ ๋“ฑ์ˆ˜๋Š” ์ž์‹ ๋ณด๋‹ค ๋” "ํฐ ๋ฉ์น˜"์˜ ์‚ฌ๋žŒ์˜ ์ˆ˜๋กœ ์ •ํ•ด์ง„๋‹ค. ๋งŒ์ผ ์ž์‹ ๋ณด๋‹ค ๋” ํฐ ๋ฉ์น˜์˜ ์‚ฌ๋žŒ์ด k๋ช…์ด๋ผ๋ฉด
๊ทธ ์‚ฌ๋žŒ์˜ ๋ฉ์น˜ ๋“ฑ์ˆ˜๋Š” k+1์ด ๋œ๋‹ค. ์ด๋ ‡๊ฒŒ ๋“ฑ์ˆ˜๋ฅผ ๊ฒฐ์ •ํ•˜๋ฉด ๊ฐ™์€ ๋ฉ์น˜ ๋“ฑ์ˆ˜๋ฅผ ๊ฐ€์ง„ ์‚ฌ๋žŒ์€ ์—ฌ๋Ÿฌ ๋ช…๋„ ๊ฐ€๋Šฅํ•˜๋‹ค. ์•„๋ž˜๋Š” 5๋ช…์œผ๋กœ ์ด๋ฃจ์–ด์ง„
์ง‘๋‹จ์—์„œ ๊ฐ ์‚ฌ๋žŒ์˜ ๋ฉ์น˜์™€ ๊ทธ ๋“ฑ์ˆ˜๊ฐ€ ํ‘œ์‹œ๋œ ํ‘œ์ด๋‹ค.

์ด๋ฆ„	<๋ชธ๋ฌด๊ฒŒ, ํ‚ค>	๋ฉ์น˜ ๋“ฑ์ˆ˜
A	<55, 185>	2
B	<58, 183>	2
C	<88, 186>	1
D	<60, 175>	2
E	<46, 155>	5

์œ„ ํ‘œ์—์„œ C๋ณด๋‹ค ๋” ํฐ ๋ฉ์น˜์˜ ์‚ฌ๋žŒ์ด ์—†์œผ๋ฏ€๋กœ C๋Š” 1๋“ฑ์ด ๋œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  A, B, D ๊ฐ๊ฐ์˜ ๋ฉ์น˜๋ณด๋‹ค ํฐ ์‚ฌ๋žŒ์€ C๋ฟ์ด๋ฏ€๋กœ ์ด๋“ค์€ ๋ชจ๋‘ 2๋“ฑ์ด ๋œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  E๋ณด๋‹ค ํฐ ๋ฉ์น˜๋Š” A, B, C, D ์ด๋ ‡๊ฒŒ 4๋ช…์ด๋ฏ€๋กœ E์˜ ๋ฉ์น˜๋Š” 5๋“ฑ์ด ๋œ๋‹ค. ์œ„ ๊ฒฝ์šฐ์— 3๋“ฑ๊ณผ 4๋“ฑ์€ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค. ์—ฌ๋Ÿฌ๋ถ„์€ ํ•™์ƒ N๋ช…์˜ ๋ชธ๋ฌด๊ฒŒ์™€ ํ‚ค๊ฐ€ ๋‹ด๊ธด ์ž…๋ ฅ์„ ์ฝ์–ด์„œ ๊ฐ ์‚ฌ๋žŒ์˜ ๋ฉ์น˜ ๋“ฑ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ ์ถœ๋ ฅํ•ด์•ผ ํ•œ๋‹ค.

๐Ÿ” ์ ‘๊ทผ๋ฒ•

๋ฉ์น˜ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.
์ž…๋ ฅ ๋ฒ”์œ„๊ฐ€ ํฌ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— brute force ๋ฐฉ์‹์œผ๋กœ ํ’€์ด๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

ํ‚ค์™€ ๋ชธ๋ฌด๊ฒŒ ๋ชจ๋‘ ํฐ ๊ฒฝ์šฐ์—๋งŒ ๋ฉ์น˜๊ฐ€ ํฌ๋‹ค๊ณ  ์ธ์ •ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋ฏ€๋กœ ๋ฐ˜๋Œ€๋กœ ํ‚ค์™€ ๋ชธ๋ฌด๊ฒŒ ๋ชจ๋‘ ์ž‘์€ ๊ฒฝ์šฐ์— ๋ฉ์น˜ ์ˆœ์œ„๋ฅผ ํ•˜๋‚˜์”ฉ ์˜ฌ๋ ค์ฃผ๋ฉด
๋‹ต์„ ๋„์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

๐Ÿ’ป ์ฝ”๋“œ

package problem.brute;

import java.io.*;

public class Main_7568 {
    public static void main(String[] args) throws IOException {

        int [][] people = input();
        int [] answer = solve(people);
        print(answer);

    }

    public static int[][] input() throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        int [][] people = new int[n][2];
        for (int i=0; i<n; i++){
            String [] info = br.readLine().split(" ");
            people[i][0] = Integer.parseInt(info[0]);
            people[i][1] = Integer.parseInt(info[1]);
        }
        return people;
    }
    public static int[] solve (int [][] people){
        int [] rank = new int[people.length];
        for(int i=0; i<people.length; i++){
            rank[i]++;
            for(int j=0; j<people.length; j++){
                if(i==j)
                    continue;
                if( people[i][0] < people[j][0] && people[i][1] < people[j][1]  ){
                    rank[i]++;
                }
            }
        }
        return rank;
    }
    public static void print(int [] answer) throws IOException {
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        for(int i=0; i<answer.length-1; i++)
            bw.write(Integer.toString(answer[i])+" ");
        bw.write(Integer.toString( answer[answer.length-1] ));
        bw.flush();
        bw.close();
    }
}


Written on July 16, 2020