์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ/BOJ_Java

[BOJ/Step11] 7568 : ๋ฉ์น˜ (JAVA)

NaNaRin๐Ÿ™ƒ 2021. 1. 21. 12:32

www.acmicpc.net/problem/7568

 

7568๋ฒˆ: ๋ฉ์น˜

์šฐ๋ฆฌ๋Š” ์‚ฌ๋žŒ์˜ ๋ฉ์น˜๋ฅผ ํ‚ค์™€ ๋ชธ๋ฌด๊ฒŒ, ์ด ๋‘ ๊ฐœ์˜ ๊ฐ’์œผ๋กœ ํ‘œํ˜„ํ•˜์—ฌ ๊ทธ ๋“ฑ์ˆ˜๋ฅผ ๋งค๊ฒจ๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ์–ด๋–ค ์‚ฌ๋žŒ์˜ ๋ชธ๋ฌด๊ฒŒ๊ฐ€ x kg์ด๊ณ  ํ‚ค๊ฐ€ y cm๋ผ๋ฉด ์ด ์‚ฌ๋žŒ์˜ ๋ฉ์น˜๋Š” (x, y)๋กœ ํ‘œ์‹œ๋œ๋‹ค. ๋‘ ์‚ฌ๋žŒ A ์™€ B์˜ ๋ฉ

www.acmicpc.net


๋ฌธ์ œ

์šฐ๋ฆฌ๋Š” ์‚ฌ๋žŒ์˜ ๋ฉ์น˜๋ฅผ ํ‚ค์™€ ๋ชธ๋ฌด๊ฒŒ, ์ด ๋‘ ๊ฐœ์˜ ๊ฐ’์œผ๋กœ ํ‘œํ˜„ํ•˜์—ฌ ๊ทธ ๋“ฑ์ˆ˜๋ฅผ ๋งค๊ฒจ๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ์–ด๋–ค ์‚ฌ๋žŒ์˜ ๋ชธ๋ฌด๊ฒŒ๊ฐ€ 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๋ช…์˜ ๋ชธ๋ฌด๊ฒŒ์™€ ํ‚ค๊ฐ€ ๋‹ด๊ธด ์ž…๋ ฅ์„ ์ฝ์–ด์„œ ๊ฐ ์‚ฌ๋žŒ์˜ ๋ฉ์น˜ ๋“ฑ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ ์ถœ๋ ฅํ•ด์•ผ ํ•œ๋‹ค.

 

์ž…๋ ฅ

์ฒซ ์ค„์—๋Š” ์ „์ฒด ์‚ฌ๋žŒ์˜ ์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด์–ด์ง€๋Š” N๊ฐœ์˜ ์ค„์—๋Š” ๊ฐ ์‚ฌ๋žŒ์˜ ๋ชธ๋ฌด๊ฒŒ์™€ ํ‚ค๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์–‘์˜ ์ •์ˆ˜ x์™€ y๊ฐ€ ํ•˜๋‚˜์˜ ๊ณต๋ฐฑ์„ ๋‘๊ณ  ๊ฐ๊ฐ ๋‚˜ํƒ€๋‚œ๋‹ค.

 

์ถœ๋ ฅ

์—ฌ๋Ÿฌ๋ถ„์€ ์ž…๋ ฅ์— ๋‚˜์—ด๋œ ์‚ฌ๋žŒ์˜ ๋ฉ์น˜ ๋“ฑ์ˆ˜๋ฅผ ๊ตฌํ•ด์„œ ๊ทธ ์ˆœ์„œ๋Œ€๋กœ ์ฒซ ์ค„์— ์ถœ๋ ฅํ•ด์•ผ ํ•œ๋‹ค. ๋‹จ, ๊ฐ ๋ฉ์น˜ ๋“ฑ์ˆ˜๋Š” ๊ณต๋ฐฑ๋ฌธ์ž๋กœ ๋ถ„๋ฆฌ๋˜์–ด์•ผ ํ•œ๋‹ค.

 

์ œํ•œ

2 ≤ N ≤ 50

10 ≤ x, y ≤ 200

 

์˜ˆ์ œ ์ž…๋ ฅ 1

5

55 185

58 183

88 186

60 175

46 155

 

์˜ˆ์ œ ์ถœ๋ ฅ 1

2 2 1 2 5


ํ’€์ด

1. ํ‚ค์™€ ๋ชธ๋ฌด๊ฒŒ๊ฐ€ ๋” ํด๋•Œ( > ) ๋ฉ์น˜์นด ๋” ํฌ๋‹ค ๋ผ๊ณ  ํ•œ๋‹ค. ๋ฉ์น˜ ๋“ฑ์ˆ˜๋Š” ์ž์‹ ๋ณด๋‹ค ๋” "ํฐ ๋ฉ์น˜"์˜ ์‚ฌ๋žŒ์˜ ์ˆ˜๋กœ ์ •ํ•ด์ง„๋‹ค

2. ์ž์‹ ์„ ์ œ์™ธํ•œ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๊ณผ ๋น„๊ตํ•˜์—ฌ ๋ฉ์น˜๊ฐ€ ๋” ํด๋•Œ ๋ฉ์น˜ ๋“ฑ์ˆ˜๋ฅผ count++ ํ•œ๋‹ค.

   (count๋Š” 1๋กœ ์ดˆ๊ธฐํ™”. ์ž์‹ ๋ณด๋‹ค ๋ฉ์น˜๊ฐ€ ํฐ ์‚ฌ๋žŒ์ด ์•„๋ฌด๋„ ์—†๋‹ค๋ฉด 1๋“ฑ)

3. ์ˆœ์„œ๋Œ€๋กœ ์นด์šดํŠธ ์ถœ๋ ฅ

 

import java.io.*;
import java.util.StringTokenizer;

public class B7568 {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		int n = Integer.parseInt(br.readLine());

		int[][] array = new int[n][2];
		
		for(int i = 0; i < n; i++) {
			StringTokenizer st = new StringTokenizer(br.readLine());
			array[i][0] = Integer.parseInt(st.nextToken());
			array[i][1] = Integer.parseInt(st.nextToken());
		}
		
		for(int i = 0; i < n; i++) {
			int count = 1;
			for(int j = 0; j < n; j++) {
				if(i == j) {
					continue;
				} else if(array[j][0] > array[i][0] && array[j][1] > array[i][1])
					count++;
			}
			System.out.print(count + " ");
		}
	}
}