SW Expert Academy
[SWEA] [JAVA] [Difficulty 2] [1983] 조교의 성적 매기기
c0mmedes
2022. 11. 18. 21:32
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com

import java.util.*;
import java.io.*;
public class Solution {
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int T= Integer.parseInt(br.readLine()); // 테스트케이스
for(int tc=1; tc<=T; tc++) {
StringTokenizer st = new StringTokenizer(br.readLine()," ");
int N= Integer.parseInt(st.nextToken()); // 학생수
int K= Integer.parseInt(st.nextToken()); // 학점을 알고싶은 학생의 번호
String grade[] = {"A+", "A0", "A-", "B+", "B0", "B-", "C+", "C0", "C-", "D0"};
Double score[] = new Double[N];
double find_score = 0.0;
for(int i=0; i<N; i++) {
st = new StringTokenizer(br.readLine()," ");
int mExam = Integer.parseInt(st.nextToken());
int fExam = Integer.parseInt(st.nextToken());
int pjt = Integer.parseInt(st.nextToken());
score[i] = mExam*0.35 + fExam*0.45 + pjt*0.20;
// 찾는 번호의 점수를 저장
if(i+1==K) find_score = score[i];
}
// 각 학생의 학점을 저장한 score 배열을 내림차순으로 정렬
Arrays.sort(score, Collections.reverseOrder());
int index=0;
// 정렬된 score 배열에서 찾는 학생의 점수의 인덱스를 저장
for(int i=0; i<score.length; i++) {
if(score[i]==find_score) {
index = i;
}
}
// 20명일 때는 2등까지 A+, 30명일 때는 3등까지 A+
index = index / (N/10);
// 평점 배열 grade에서 해당 인덱스를 넣어서 평점 출력
sb.append("#" + tc + " " + grade[index] + "\n");
}
System.out.println(sb);
}
}