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);
		
		
	}
}
댓글수0