[๋ฐฑ์ค 7568๋ฒ, 18870๋ฒ] ๋ธ๋ฃจํธํฌ์ค-๋ฉ์น & ์ ๋ ฌ - ์ขํ์์ถ
๋ฌธ์
์ฐ๋ฆฌ๋ ์ฌ๋์ ๋ฉ์น๋ฅผ ํค์ ๋ชธ๋ฌด๊ฒ, ์ด ๋ ๊ฐ์ ๊ฐ์ผ๋ก ํํํ์ฌ ๊ทธ ๋ฑ์๋ฅผ ๋งค๊ฒจ๋ณด๋ ค๊ณ ํ๋ค. ์ด๋ค ์ฌ๋์ ๋ชธ๋ฌด๊ฒ๊ฐ 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)]