Problem Solving/BOJ & Programmers

[BOJ] 7568๋ฒˆ: ๋ฉ์น˜

geum 2024. 9. 9. 13:33

โœ๏ธ ๋ฌธ์ œ

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

 

 

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

 

๐Ÿค– ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ

 

๐Ÿง ๋‚œ์ด๋„/์†Œ์š” ์‹œ๊ฐ„

  • ๋‚œ์ด๋„: solved.ac ๊ธฐ์ค€ S5
  • ์†Œ์š” ์‹œ๊ฐ„: 40๋ถ„

 

๐Ÿ’กํ’€์ด

์‹ค๋ฒ„ 5 ๋ฌธ์ œ๋ฅผ 40๋ถ„ ๊ฑธ๋ ค ํ‘ธ๋Š” ๊ฒŒ ๋‚˜์˜ ํ˜„ ์ƒํ™ฉ๏ธ..^^ ์ด ๋ฌธ์ œ๋Š” ์‚ฌ์‹ค ๋ธŒ๋ฃจํŠธํฌ์Šค ๋Œ๋ฆฌ๋ฉด ๋˜๋Š”๋ฐ ์ฒ˜์Œ์— ์ƒ๊ฐ์—†์ด ์ผ๋˜ ๋ถ€๋ถ„์ด ์žˆ์–ด์„œ ๊ทธ ๋ถ€๋ถ„ ๊ณ ์นœ๋‹ค๊ณ  ์กฐ๊ธˆ ์‹œ๊ฐ„์ด ๊ฑธ๋ ธ์Œ

 

N = int(input())

spec = []

for _ in range(N):
    x, y = list(map(int, input().split()))
    
    spec.append((x, y))

students = [[k, 0] for k in spec]

for i in range(0, N):
    rank = 0
    
    for j in range(0, N):
        if (students[j][0][0] > students[i][0][0]) and (students[j][0][1] > students[i][0][1]):
            rank += 1
    
    students[i][1] = rank+1

for item in students:
    print(item[1], end=" ")

 

Line 10: (๋ชธ๋ฌด๊ฒŒ, ํ‚ค) ์ •๋ณด์™€ ๋ฉ์น˜ ๋“ฑ์ˆ˜๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ๋ฆฌ์ŠคํŠธ

 

์ฒ˜์Œ์—๋Š” ์ด ๋ผ์ธ์—์„œ ๋ฆฌ์ŠคํŠธ๋ฅผ ์“ฐ์ง€ ์•Š๊ณ  ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ์ผ๋Š”๋ฐ ์˜ˆ์‹œ๋Š” ํ†ต๊ณผํ–ˆ์ง€๋งŒ ์ œ์ถœํ•˜๋‹ˆ๊นŒ 5%์—์„œ ํ‹€๋ ธ์Šต๋‹ˆ๋‹ค๊ฐ€ ๋–ด๋‹ค. ๋ฐ˜๋ก€๋ฅผ ๋– ์˜ฌ๋ ค๋ณด๋‹ˆ๊นŒ ๋”•์…”๋„ˆ๋ฆฌ๋Š” ํ‚ค ์ค‘๋ณต์ด ์•ˆ๋˜๋‹ˆ๊นŒ (๋ชธ๋ฌด๊ฒŒ, ํ‚ค)๊ฐ€ ๋‹ค ๊ฐ™์€ ๊ฒฝ์šฐ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†๋Š” ๊ฒŒ ๋ฌธ์ œ์˜€๋‹ค. ์ด ๋ถ€๋ถ„์„ ๋ฆฌ์ŠคํŠธํ™”ํ•ด์„œ ํ•ด๊ฒฐ ์™„๋ฃŒ!