코딩테스트 \파이썬\자바/SWEA D2

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

익명의 신디 2020. 3. 11. 08:44

문제출처

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PwGK6AcIDFAUq&categoryId=AV5PwGK6AcIDFAUq&categoryType=CODE

1983. 조교의 성적 매기기 D2 파이썬

 

학기가 끝나고, 학생들의 점수로 학점을 계산중이다.

학점은 상대평가로 주어지는데, 총 10개의 평점이 있다.


학점은 학생들이 응시한 중간/기말고사 점수 결과 및 과제 점수가 반영한다.

각각 아래 비율로 반영된다.


10 개의 평점을 총점이 높은 순서대로 부여하는데,

각각의 평점은 같은 비율로 부여할 수 있다.

예를 들어, N 명의 학생이 있을 경우 N/10 명의 학생들에게 동일한 평점을 부여할 수 있다.

입력으로 각각의 학생들의 중간, 기말, 과제 점수가 주어지고,

학점을 알고싶은 K 번째 학생의 번호가 주어졌을 때,

K 번째 학생의 학점을 출력하는 프로그램을 작성하라.


[제약사항]

1. N은 항상 10의 배수이며, 10이상 100이하의 정수이다. (10 ≤ N ≤ 100)

2. K는 1 이상 N 이하의 정수이다. (1 ≤ K ≤ N)

3. K 번째 학생의 총점과 다른 학생의 총점이 동일한 경우는 입력으로 주어지지 않는다.


[입력]

입력은 첫 줄에 총 테스트 케이스의 개수 T가 온다.

다음 줄부터 각 테스트 케이스가 주어진다.

테스트 케이스의 첫 번째 줄은 학생수 N 과, 학점을 알고싶은 학생의 번호 K 가 주어진다.

테스트 케이스 두 번째 줄 부터 각각의 학생이 받은 시험 및 과제 점수가 주어진다.


[출력]

테스트 케이스 t에 대한 결과는 “#t”을 찍고, 한 칸 띄고, 정답을 출력한다.

(t는 테스트 케이스의 번호를 의미하며 1부터 시작한다.)

 

 

<PASS>

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
31
32
# 조교의 성적매기기 D2 파이썬
#  2020.01.27
 
import math
#            0      1      2
grade_num = ['D0''C-''C0''C+''B-''B0''B+''A-''A0''A+']
 
T=int(input())
for t in range(1,T+1):
    grade_total=[]
    grade_rank={}
    people,k = map(int,input().split())
    for i in range(1,people+1):
        mid,final,hw = map(int, input().split())
        grade_total.append({'num':i,'score':(mid*0.35+final*0.45+hw*0.2)})
    #print(grade_total)
 
    def get_key(item):
        return item['score']
    grade_total.sort(key=get_key)
    #print(grade_total)
 
    step = people/10
    x = 0
    current_grade = 0
    for i in range(people):
        current_grade = math.floor(i/people * 10)
        if k == grade_total[i]['num']:
           print('#{0} {1}'.format(t,grade_num[current_grade]))
        # print(grade_num[current_grade],end=' ')
 
 
 

 

D2 에서 사실상 내게 제일 어려웠다.