[SWEA D2] 1983. 조교의 성적 매기기

shin·2022년 11월 15일
0

CodingTest 문제 풀이

목록 보기
37/79

문제 : [SWEA D2] 1983. 조교의 성적 매기기

풀이

T = int(input())
for t in range(1, T + 1):
    N, K = map(int, input().split(" "))
    score = [list(map(int, input().split(" "))) for _ in range(N)]
    rank = []
    result = ["A+", "A0", "A-", "B+", "B0", "B-", "C+", "C0", "C-", "D0"]
    for i, s in enumerate(score):
        rank.append([s[0] * 0.35 + s[1] * 0.45 + s[2] * 0.20, i + 1])
    rank.sort(reverse = True)
    for i in range(N):
        if rank[i][1] == K:
            r = i
            break
    index = int(r // (N / 10))
    print(f"#{t} {result[index]}")
  • 점수를 사용해서 계산한 총점과 학번을 하나의 리스트로 만들어서 2차원 배열에 하나씩 넣음
  • 총점을 기준으로 2차원 배열 정렬
  • 특정 학번 K가 2차원 배열의 몇 번째 배열인지 확인하면 몇 등인지 알 수 있음
  • 하나의 평점에 들어갈 수 있는 학생의 수(N/10)로 등수를 나누면 어떤 범주의 평점에 속하는지 알 수 있음
profile
Backend development

0개의 댓글