https://www.acmicpc.net/problem/8979
>>문제 포인트
- 금메달, 은메달, 동메달 순 내림차순 정렬
-동점자가 있을 때 rank를 갱신하지 않음 => 인접한 행과의 비교가 필수
ex) 2-3이 동점일때
=> 1등 - 2등 -2등 -4등
=> before행과 비교하여 같다면 임시저장소에 포인트를 쌓음
=> before행과 비교하여 같지않다면 rank를 +1하고 누적되어있던 point를 같이 더하고 비워줌
>>풀이 코드
#8979
n, k= map(int, input().split())
medal=[]
for _ in range(n):
a,b,c,d= map(int, input().split())
medal.append((b,c,d,a))
#금-은-동 순 내림차순 정렬
medal = sorted(medal, key= lambda x: (-x[0], -x[1], -x[2]))
rank=0
point=0 #이전행과 같을 경우 쌓이는 포인트
before= 0 #이전행
for idx, i in enumerate(medal):
if before==i[:-1]: #만약 이전행과 같다면
point+=1 #point만 갱신
else:
rank+=(point+1) #같지 않으면 누적되어 있는 point와 1을 더함
point=0 #point 비워주기
if i[3]==k: #우리가 찾는 순서라면 => rank출력
print(rank)
break
before= i[:-1] #이전행 메달정보 갱신
'백준 문풀' 카테고리의 다른 글
[Python] DFS/BFS - 10026. 적녹색약(골5) / 탐색 기준값이 변수 (0) | 2023.08.25 |
---|---|
[Python] DFS/BFS - 11724.연결요소의 개수(실2) (0) | 2023.08.25 |
[Python] 구현 - 1138.한줄로 서기(실2) / 뒤집어 insert (0) | 2023.08.12 |
[Python] 구현-13335. 트럭(실1) /큐와 시뮬레이션 (0) | 2023.08.11 |
[Python] 구현 - 1966.프린터큐(실3) / 큐 (0) | 2023.08.10 |