์นดํ…Œ๊ณ ๋ฆฌ ์—†์Œ

[๋ฐฑ์ค€ 7568๋ฒˆ, 18870๋ฒˆ] ๋ธŒ๋ฃจํŠธํฌ์Šค-๋ฉ์น˜ & ์ •๋ ฌ - ์ขŒํ‘œ์••์ถ•

Dev.Op 2022. 4. 8. 23:59
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ

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

 

 

 

 

์ž…๋ ฅ

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

 
 

 

์ œํ•œ

  • 2 ≤ N ≤ 50
  • 10 ≤ x, y ≤ 200

 

 

 

์ถœ๋ ฅ

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

 

 

 

์˜ˆ์ œ์ž…๋ ฅ

ํ•ด์„ค ์ฝ”๋“œ

์šฐ์„  ํ•™์ƒ์˜ ์ •๋ณด๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š” ๋‹จ๊ณ„ (1๋‹จ๊ณ„)

 

๊ทธ๋ฆฌ๊ณ  ํ•™์ƒ์˜ ์ •๋ณด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋“ฑ์ˆ˜๋ฅผ ๋‚˜๋ˆ„๋Š” ๋‹จ๊ณ„(2๋‹จ๊ณ„)

 

๋กœ ํฐ ํ‹€์„ ์ž‘์„ฑํ•˜๊ณ , ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์ž.

 

n = int(input())

student_list = []

for i in range(n):
    weight, height = map(int, input().split())
    student_list.append((weight, height)) # ํ•™์ƒ์˜ ์ •๋ณด๊ฐ€ ํ•œ ํ‹€์— 2๊ฐœ๊ฐ€ ๋“ค์–ด๊ฐ„๋‹ค

print(student_list)

for i in student_list:
    rank = 1
    
    for j in student_list:
        if i[0] < j[0] and i[1] < j[1]: #i๊ฐ€ ๊ฐ€์žฅ ํฌ๋ฉด, rank๊ฐ€ 1๋“ฑ, ํ•˜๋‚˜์”ฉ ์ž‘์€๊ฒŒ ์žˆ์„๋•Œ๋งˆ๋‹ค 1์”ฉ ๋žญํฌ๊ฐ€ ์ค„์–ด๋“ ๋‹ค
            rank += 1 # ๋ชจ๋‘ ๊ฐ’์˜ ๋Œ€์†Œ ์ฐจ์ด๊ฐ€ ๋‚˜์•ผ ๋žญํฌ๊ฐ€ ๊ฒฐ์ •๋˜๋ฏ€๋กœ, ๋Œ€๋“ฑํ•˜๋ฉด ๋žญํฌ๋Š” ๊ทธ๋Œ€๋กœ
    
    print(rank, end =' ')

 

 

 


 

 

๋ฌธ์ œ

์ˆ˜์ง์„  ์œ„์— N๊ฐœ์˜ ์ขŒํ‘œ X1, X2, ..., XN์ด ์žˆ๋‹ค. ์ด ์ขŒํ‘œ์— ์ขŒํ‘œ ์••์ถ•์„ ์ ์šฉํ•˜๋ ค๊ณ  ํ•œ๋‹ค.

 

Xi๋ฅผ ์ขŒํ‘œ ์••์ถ•ํ•œ ๊ฒฐ๊ณผ X'i์˜ ๊ฐ’์€ Xi > Xj๋ฅผ ๋งŒ์กฑํ•˜๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ์ขŒํ‘œ์˜ ๊ฐœ์ˆ˜์™€ ๊ฐ™์•„์•ผ ํ•œ๋‹ค.

 

X1, X2, ..., XN์— ์ขŒํ‘œ ์••์ถ•์„ ์ ์šฉํ•œ ๊ฒฐ๊ณผ X'1, X'2, ..., X'N๋ฅผ ์ถœ๋ ฅํ•ด๋ณด์ž.

 

 

 

 

 

 

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— N์ด ์ฃผ์–ด์ง„๋‹ค.

๋‘˜์งธ ์ค„์—๋Š” ๊ณต๋ฐฑ ํ•œ ์นธ์œผ๋กœ ๊ตฌ๋ถ„๋œ X1, X2, ..., XN์ด ์ฃผ์–ด์ง„๋‹ค.

 
 

 

์ œํ•œ

 

  • 1 ≤ N ≤ 1,000,000
  • -109 ≤ Xi ≤ 109

 

 

 

 

์ถœ๋ ฅ

์ฒซ์งธ ์ค„์— X'1, X'2, ..., X'N์„ ๊ณต๋ฐฑ ํ•œ ์นธ์œผ๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ์ถœ๋ ฅํ•œ๋‹ค.

 
 

 

 

์˜ˆ์ œ์ž…๋ ฅ

ํ•ด์„ค ์ฝ”๋“œ

์šฐ์„  ํ•™์ƒ์˜ ์ •๋ณด๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š” ๋‹จ๊ณ„ (1๋‹จ๊ณ„)

 

๊ทธ๋ฆฌ๊ณ  ํ•™์ƒ์˜ ์ •๋ณด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋“ฑ์ˆ˜๋ฅผ ๋‚˜๋ˆ„๋Š” ๋‹จ๊ณ„(2๋‹จ๊ณ„)

 

๋กœ ํฐ ํ‹€์„ ์ž‘์„ฑํ•˜๊ณ , ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์ž.

 

 

(์ž‘์„ฑ์ค‘...)

 

์™œ ์—๋Ÿฌ๊ฐ€ ๋‚˜์ง€?

 

 

 

์—๋Ÿฌ ์ฝ”๋“œ :

 

ValueError: invalid literal for int() with base 10: ''

 

ํ˜•๋ณ€ํ™˜์„ ํ•ด์ค˜๋„ ๊ณ„์† ๋œจ๊ธธ๋ ˆ ์ผ๋‹จ ์Šคํ‚ต~


#1. sys.stdin.readline

 

๋ณดํ†ต input์„ ์ด์šฉํ•˜์ง€๋งŒ, ๋‹ค์Œ์—์„œ๋Š” sys.stdin.readline ์„ ์จ์•ผํ•˜๋Š”๋ฐ, ์ด์œ ๋Š” ์‹œ๊ฐ„ ์ดˆ๊ณผ์™€ ๊ด€๋ จ์ด ์žˆ๋‹ค

 

๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ์—ฌ๋Ÿฌ์ค„ ์ž…๋ ฅ๋ฐ›๋Š” ๊ฒฝ์šฐ๋Š” sys.stdin.readline()์„ ์‚ฌ์šฉํ•ด์•ผ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค

 

๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค

 

 

i) ์ •ํ•ด์ง„ ๊ฐœ์ˆ˜์˜ ์ •์ˆ˜๋ฅผ ํ•˜๋‚˜์˜ ์ค„์— ์ž…๋ ฅ ๋ฐ›๋Š” ๊ฒฝ์šฐ
import sys

x, y, z = map(int , sys.stdin.readline().split())

 

* map() ์˜ ๊ฒฝ์šฐ, ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด ๋˜๋Š” ๋ฆฌ์ŠคํŠธ์— ๋Œ€ํ•ด ๊ฐ๊ฐ์˜ ์š”์†Œ๋“ค์„ ์ง€์ •๋œ ํ•จ์ˆ˜๋กœ ์ฒ˜๋ฆฌํ•ด์ฃผ๋Š” ํ•จ์ˆ˜์ด๋‹ค

 

์œ„์™€ ๊ฐ™์ด ์‚ฌ์šฉํ•˜๋ฉด, x y z ์— ๋Œ€ํ•ด ๊ฐ๊ฐ intํ˜•์œผ๋กœ ํ˜•๋ณ€ํ™˜์„ ํ•  ์ˆ˜ ์žˆ๋‹ค

 

 

 

ii) ์ž„์˜์˜ ๊ฐœ์ˆ˜์˜ ์ •์ˆ˜๋ฅผ ํ•˜๋‚˜์˜ ์ค„์— ์ž…๋ ฅ๋ฐ›์•„ ๋ฆฌ์ŠคํŠธ์— ์ €์žฅํ•˜๋Š” ๊ฒฝ์šฐ
import sys

sentence = list(map(int, sys.stdin.readline().strip()))

* split() ์˜ ๊ฒฝ์šฐ, ๋ฌธ์ž์—ด์„ ๋‚˜๋ˆ ์ฃผ๋Š” ํ•จ์ˆ˜์ด๋‹ค

๊ด„ํ˜ธ ์•ˆ์˜ ํŠน์ • ๊ฐ’์„ ๋„ฃ์–ด์ฃผ๋ฉด ๊ทธ ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ๋ฌธ์ž์—ด์„ ๋‚˜๋ˆ„๊ณ , ์•„๋ฌด ๊ฐ’๋„ ๋„ฃ์–ด์ฃผ์ง€ ์•Š์œผ๋ฉด ๊ณต๋ฐฑ(์ŠคํŽ˜์ด์Šค, ํƒญ, ์—”ํ„ฐ) ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋‚˜๋ˆˆ๋‹ค

 

** list() ์˜ ๊ฒฝ์šฐ์—๋Š” ์ž๋ฃŒํ˜•์„ ๋ฆฌ์ŠคํŠธํ˜•์œผ๋กœ ๋ณ€ํ™˜ํ•ด์ฃผ๋Š” ํ•จ์ˆ˜์ด๋‹ค

 

*** map() ์˜ ๊ฒฝ์šฐ, ๋งต ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค๊ธฐ ๋•Œ๋ฌธ์— ๋ฆฌ์ŠคํŠธํ˜•์œผ๋กœ ๋ฐ”๊ฟ”์ฃผ๊ธฐ ์œ„ํ•˜์—ฌ list() ๋ฅผ ์‚ฌ์šฉํ•˜์˜€๋‹ค

 

 

iii) ๋ฌธ์ž์—ด์„ n์ค„์„ ์ž…๋ ฅ๋ฐ›์•„์„œ ๋ฆฌ์ŠคํŠธ์— ์ €์žฅํ•˜๋Š” ๊ฒฝ์šฐ

 

import sys

n = int(sys.stdin.readline())

data = [sys.stdin.readline().strip() for i in range(n)]

 

๋ฐ˜์‘ํ˜•