728x90
https://www.acmicpc.net/problem/8979
8979๋ฒ: ์ฌ๋ฆผํฝ
์ ๋ ฅ์ ์ฒซ ์ค์ ๊ตญ๊ฐ์ ์ N(1 ≤ N ≤ 1,000)๊ณผ ๋ฑ์๋ฅผ ์๊ณ ์ถ์ ๊ตญ๊ฐ K(1 ≤ K ≤ N)๊ฐ ๋น์นธ์ ์ฌ์ด์ ๋๊ณ ์ฃผ์ด์ง๋ค. ๊ฐ ๊ตญ๊ฐ๋ 1๋ถํฐ N ์ฌ์ด์ ์ ์๋ก ํํ๋๋ค. ์ดํ N๊ฐ์ ๊ฐ ์ค์๋ ์ฐจ๋ก๋๋ก ๊ฐ
www.acmicpc.net
๋ฌธ์ ์์ ์กฐ์ฌํด์ผ ํ ์กฐ๊ฑด
-๊ณต๋์์๊ฐ ์์ ๊ฒฝ์ฐ 1๋ฑ, 2๋ฑ, 2๋ฑ, 3๋ฑ ์ด๋ฐ์์ผ๋ก ์์๊ฐ ๋งค๊ฒจ์ง๋ ๊ฒ ์๋. 1๋ฑ, 2๋ฑ, 2๋ฑ, 4๋ฑ ์ผ๋ก ๋งค๊ฒจ์ง๋ค.
-๊ตญ๊ฐ๋ฒํธ๊ฐ 1๋ถํฐ ์์๋๋ก ์ ๋ ฅ๋์ง ์์ ์ ์๋ค.
๊ฐ์ธ์ ์ผ๋ก ์ ์กฐ๊ฑด๋ค์ ์๋ชป ์ฝ์ด์ ์ ๋ตํ์ ๋ฐ๋ ๋ฐ์ ์๊ฐ๋ณด๋ค ์๊ฐ์ด ์ข ๊ฑธ๋ ธ๋ค.
๋ฌธ์ ๋ฅผ ๋๋ฐ๋ก ์ฝ์..
์ ๋ต ์ฝ๋
import sys
input=sys.stdin.readline
n,k = map(int,input().split())
medals=[]
for i in range(n):
medals.append(list(map(int,input().split())))
medals.sort(key=lambda x: (-x[1], -x[2], -x[3])) #์ ๋ ฌ
medals[0].append(1)
rank=1
same=1
for i in range(1,len(medals)):
if medals[i][1]==medals[i-1][1] and medals[i][2]==medals[i-1][2] and medals[i][3]==medals[i-1][3]:
same += 1
medals[i].append(rank)
else:
rank += same #๋์์๋งํผ ์์ ์ฆ๊ฐ์์ผ์ฃผ๊ธฐ
same = 1
medals[i].append(rank)
for i in medals:
if i[0]==k:
print(i[4])
exit()
728x90
'์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค]1205๋ฒ: ๋ฑ์ ๊ตฌํ๊ธฐ (0) | 2023.03.15 |
---|---|
[๋ฐฑ์ค]2164๋ฒ: ์นด๋2 (0) | 2023.03.15 |
[๋ฐฑ์ค]2292๋ฒ: ๋ฒ์ง (0) | 2023.03.12 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์คํจ์จ (0) | 2023.03.09 |
[๋ฐฑ์ค]18310๋ฒ: ์ํ ๋ (1) | 2023.03.09 |