문제
총점 = 중간점수(35%) + 기말점수(45%) + 과제(20%)
총점을 기준으로 A+ ~ D0까지 10개의 성적을 매길 때 k번째 학생의 성적을 구하는 문제
풀이방법
총점과 인덱스를 멤버로 가지는 클래스를 만들어 총점 순으로 정렬한 뒤 성적을 부여
소스코드
package samsung;
import java.util.*;
public class s_1983 {
static class Student implements Comparable<Student>{
double grade;
int num;
Student(double grade, int num){
this.grade = grade;
this.num = num;
}
@Override
public int compareTo(Student s) {
if(this.grade > s.grade)
return -1;
else
return 1;
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String[] alpa = {"A+", "A0", "A-", "B+", "B0", "B-", "C+", "C0", "C-", "D0"};
int test = sc.nextInt();
for(int t = 1; t <= test; t++) {
ArrayList<Student> a = new ArrayList();
int n = sc.nextInt();
int target = sc.nextInt();
for(int i = 1; i <= n; i++) {
double tmp1 = sc.nextDouble() * 35 / 100;
double tmp2 = sc.nextDouble() * 45 / 100;
double tmp3 = sc.nextDouble() * 20 / 100;
a.add(new Student(tmp1 + tmp2 + tmp3, i));
}
Collections.sort(a);
for(int i = 0; i < a.size(); i++) {
Student tmp = (Student)a.get(i);
if(tmp.num == target) {
double idx = (double)i / a.size();
System.out.println("#" + t + " " + alpa[(int)(idx*10)]);
}
}
}
}
}
'Problem Solving > SWEA' 카테고리의 다른 글
[SWEA] 1976. 시각 덧셈 (0) | 2020.01.29 |
---|---|
[SWEA] 1979. 어디에 단어가 들어갈 수 있을까 (0) | 2020.01.29 |
[SWEA] 1984. 중간 평균값 구하기 (0) | 2020.01.29 |
[SWEA] 1986. 지그재그 숫자 (0) | 2020.01.29 |
[SWEA] 1989. 초심자의 회문 검사 (0) | 2020.01.29 |
댓글