최근 글 ✨

[SWEA] 1983 조교의 성적 매기기 Java

https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=2&contestProbId=AV5PwGK6AcIDFAUq&categoryId=AV5PwGK6AcIDFAUq&categoryType=CODE&problemTitle=&orderBy=RECOMMEND_COUNT&selectCodeLang=ALL&select-1=2&pageSize=10&pageIndex=1

 

SW Expert Academy

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

swexpertacademy.com

 

[코드]

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;

public class CodingTest {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		Map<Integer, String> map = new HashMap<>();
		String[] grade = { "A+", "A0", "A-", "B+", "B0", "B-", "C+", "C0", "C-", "D0" };
		int T = Integer.parseInt(br.readLine());
		for (int test_case = 0; test_case < T; test_case++) {
			StringTokenizer st = new StringTokenizer(br.readLine(), " ");
			int N = Integer.parseInt(st.nextToken());
			int K = Integer.parseInt(st.nextToken());
			double[] scores = new double[N];
			for (int i = 0; i < N; i++) {
				st = new StringTokenizer(br.readLine(), " ");
				int mid = Integer.parseInt(st.nextToken());
				int fin = Integer.parseInt(st.nextToken());
				int work = Integer.parseInt(st.nextToken());

				scores[i] = (mid * 0.35) + (fin * 0.45) + (work * 0.2);
			}

			double goal = scores[K - 1]; // 목표 학생의 점수
			Arrays.sort(scores);
			double[] results = new double[N];
			for (int i = 0; i < N; i++) {
				results[i] = scores[N - i - 1];
			}

			String goal_grade = "";
			for (int i = 0; i < N; i++) {
				if (results[i] == goal) { // 목표 학생의 점수일 때
					goal_grade = grade[i / (N / 10)];
				}
			}
			System.out.println("#" + (test_case + 1) + " " + goal_grade);
		}
	}
}