https://www.acmicpc.net/problem/15905
코드
n = int(input())
arr = [list(map(int, input().split())) for _ in range(n)]
arr.sort(key=lambda x: (-x[0], x[1]))
answer = 0
for i in range(5, n):
if arr[i][0] == arr[4][0]:
answer += 1
else:
break
print(answer)
6위부터의 사람들 중 5위와 맞힌 문제 수가 같은 사람이 몇 명인지를 구하면 된다.
그러기 위해 우선 정렬을 사용하여 순위를 매긴다.
arr.sort(key=lambda x: (-x[0], x[1]))
이렇게 하면 맞힌 문제 수 내림차순, 맞힌 문제가 같다면 패널티 오름차순으로 정렬을 하여 순위를 매길 수 있다.
이제 이 정렬한 배열의 arr[5](파이썬 배열의 인덱스는 0부터 시작하기 때문에 arr[5]가 6위다)부터 한 칸씩 넘어가면서 arr[4]와 맞힌 문제 수가 같은 원소의 개수를 구한다.
'문제풀이 > 구현' 카테고리의 다른 글
[Python/파이썬] LeetCode 916번 Word Subsets (0) | 2025.03.27 |
---|---|
[Python/파이썬] 백준 1041번 주사위 (0) | 2025.03.23 |
[Python/파이썬] LeetCode 38번 Count and Say (0) | 2025.03.17 |
[Python/파이썬] LeetCode 48번 Rotate Image (0) | 2025.03.15 |
[Python/파이썬] 백준 8972번 미친 아두이노 (0) | 2025.03.07 |