티스토리 뷰

문제출처 - https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PwGK6AcIDFAUq&categoryId=AV5PwGK6AcIDFAUq&categoryType=CODE

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

t = int(input())
grade = ['D0', 'C-', 'C0', 'C+', 'B-', 'B0', 'B+', 'A-', 'A0', 'A+']

for case in range(t):
    n, k = map(int, input().split())  # n은 항상 10의 배수
    arr = []

    for i in range(n):
        a, b, c = map(int, input().split())
        total = a * 0.35 + b * 0.45 + c * 0.2
        arr.append((total, i+1))

    arr.sort()

    for i in range(n):
        if arr[i][1] == k:
            print("#%d" % (case+1), grade[(i // (n//10)) % 10])
            break

"N 명의 학생이 있을 경우 N/10 명의 학생들에게 동일한 평점을 부여할 수 있다." 이 부분때문에 조금 고민을 했는데

grade의 인덱스를 grade[(i // (n//10)) % 10] 이렇게 지정해줘서 해결했다. 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함