문제링크
풀이
T = int(input())
grade = ["A+", "A0", "A-", "B+", "B0", "B-", "C+", "C0", "C-", "D0"]
for test in range(1, T+1):
# n : 학생 수, k : 알고 싶은 학생의 번호
n, k = map(int, input().split())
# score[] : 학생들의 total 점수를 보관할 리스트
score = []
for i in range(n):
# 중간, 기말, 과제 점수
mid, fin, work = map(int, input().split())
total = mid*0.35 + fin*0.45 + work*0.2
score.append(total)
# k의 총 점수
k_score = score[k-1]
score.sort(reverse=True) # 학점 부여를 위해 내림차순 정렬
rate = n//10
k_index = score.index(k_score) // rate
print(f"#{test} {grade[k_index]}")
평점 비율을 이해하는데 시간이 많이 걸렸다.
N명의 학생이 있을 때 N/10명의 학생에게 동일한 평점을 부여한다. 만약 학생수가 30명이면 3명씩 공동 학점이기 때문에 k가 2등이라면 2//3을 했을 때 0이 나오기 때문에 학점 리스트의 0번째 인덱스 학점인 A+를 부여받는다.
'Problem Solving > SWEA' 카테고리의 다른 글
| [SWEA Java] 2112. [모의 SW 역량테스트] 보호 필름 (0) | 2022.10.14 |
|---|---|
| [SWEA Python] 1979. 어디에 단어가 들어갈 수 있을까 (0) | 2022.07.06 |
| [SWEA Python] 1989. 초심자의 회문 검사 (0) | 2022.07.06 |
| [SWEA Python] 2001. 파리 퇴치 (0) | 2022.07.06 |
| [SWEA Python] 2005. 파스칼의 삼각형 (0) | 2022.07.03 |