본문 바로가기

Algorithm/SWEA

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

반응형


문제 이해

 

아이디어

 

코드

import java.io.*;
import java.util.*;

class Pair {
	public double sum;
	public int index;
	public Pair() {	}
	public Pair(double sum, int index) {
		this.sum = sum;
		this.index = index;
	}
}

public class Solution {
	static String[] grade = { "A+", "A0", "A-", "B+", "B0", "B-", "C+", "C0", "C-", "D0" };
	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st;

		int T = Int(br.readLine());
		for (int tc = 1; tc <= T; ++tc) {
			LinkedList<Pair> student = new LinkedList<>();
			st = new StringTokenizer(br.readLine(), " ");
			int N = Int(st.nextToken());
			int K = Int(st.nextToken());
			for (int i = 0; i < N; ++i) {
				st = new StringTokenizer(br.readLine(), " ");
				int mid = Int(st.nextToken());
				int fnl = Int(st.nextToken());
				int hw = Int(st.nextToken());
				double sum = (mid * 0.35d) + (fnl * 0.45d) + (hw * 0.2d);
				student.offer(new Pair(sum, i + 1));
			}
			Collections.sort(student, new Comparator<Pair>() {
				@Override
				public int compare(Pair o1, Pair o2) {
					return Double.compare(o2.sum, o1.sum);
				}
			});
			int ratio =N/10;
			int index =0;
			boolean isFlag = false;
			while(!isFlag) {
				for(int i=0; i<ratio; ++i) {
					if(student.peek().index == K) {
						System.out.println("#"+tc+" "+grade[index]);
						isFlag = true;
						break;
					}
					student.poll();
				}
				index++;
			}
		}
	}
	static int Int(String s) {
		return Integer.parseInt(s);
	}
}

 

 


 

 

집사는개발자가되고파

 

choppadontbiteme.tistory.com

 

반응형