🐸 문제 정보
🤖 알고리즘
정렬
⏱️ 풀이 시간
26.48m
📝 풀이
직관적으로 떠오르는대로 정렬하면 금방 풀 수 있었는데 괜히 꼬아서 보다가 삽질해버렸다..
풀이방법은 아래와 같다.
- 점수 합계 정산을 위한 딕셔너리 / 제출 횟수를 알기 위한 리스트 / 마지막 제출 시간을 알기 위한 리스트 초기화
- 딕셔너리의 경우, key는 팀 ID / value는 문제 당 점수 리스트
- 문제에서 지시한대로, 아래 순서에 따라 정렬 후 본인 팀 ID의 인덱스 + 1
- 팀 별 점수 합계 내림차순
- 제출 횟수 오름차순
- 마지막 제출 시간 오름차순
🧑💻 나의 답
# pypy3
import sys
input = sys.stdin.readline
for _ in range(int(input().rstrip())):
n, k, t, m = list(map(int, input().rstrip().split()))
scores = {i: [0] * (k + 1) for i in range(1, n + 1)}
cnt = [0] * (n + 1)
order = [0] * (n + 1)
for idx in range(m):
i, j, s = list(map(int, input().rstrip().split()))
scores[i][j] = max(scores[i][j], s)
cnt[i] += 1
order[i] = idx
print(sorted(scores, key=lambda x:[-sum(scores[x]), cnt[x], order[x]]).index(t) + 1)
'PS > 문제풀이' 카테고리의 다른 글
백준 5972 택배 배송 Python (1) | 2024.01.22 |
---|---|
백준 2531 회전 초밥 Python (0) | 2024.01.22 |
백준 1253 좋다 Python (1) | 2024.01.21 |
백준 20922 겹치는 건 싫어 Python (1) | 2024.01.21 |
백준 17484 진우의 달 여행 (Small) Python (0) | 2024.01.21 |