728x90
반응형
풀이 :
총 점수를 담은 scores[] 생성, K번째 학생의 점수를 goal로 따로 빼고 sort, grade[i/(N/10)]
Code
public class Solution1983 {
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
for (int tc = 1; tc <= T; tc++) {
int N = sc.nextInt();
int K = sc.nextInt();
String[] grade = new String[]{"D0", "C-", "C0", "C+", "B-", "B0", "B+", "A-", "A0", "A+"};
double[] scores = new double[N];
for (int i = 0; i < N; i++) {
int mid_score = sc.nextInt();
int final_score = sc.nextInt();
int sub_score = sc.nextInt();
scores[i] = mid_score * 0.35 + final_score * 0.45 + sub_score * 0.2;
}
String result = "";
double goal = scores[K - 1];
Arrays.sort(scores);
for (int i = 0; i < N; i++) {
if (goal == scores[i]) {
result = grade[i / (N / 10)];
break;
}
}
System.out.println("#" + tc + " " + result);
}
}
}
ArrayList 사용한 풀이
/**
* String[] scores = {"A+", "A0", "A-", "B+", "B0", "B-", "C+", "C0", "C-", "D0"};
*
* for (int tc=1; tc<=t; tc++) {
* int n = sc.nextInt(); // 학생 수
* int k = sc.nextInt(); // 학점을 알고싶은 학생의 번호
*
* ArrayList<Double> arr = new ArrayList<>();
* for (int i=0; i<n; i++) {
* int a = sc.nextInt();
* int b = sc.nextInt();
* int c = sc.nextInt();
* double sum_value = (a * 0.35) + (b * 0.45) + (c * 0.2);
* arr.add(sum_value);
* }
*
* double k_score = arr.get(k-1);
* Collections.sort(arr, Collections.reverseOrder());
*
* int value = (int)(n/10);
* int result = (int)(arr.indexOf(k_score) / value);
*
* System.out.println("#" + tc + " " + scores[result]);* }
* }
*/
728x90
반응형
'SWEA' 카테고리의 다른 글
swea 1986 [D2] 지그재그 숫자 JAVA (0) | 2023.11.22 |
---|---|
swea 1984 [D2] 중간 평균값 구하기 JAVA (2) | 2023.11.22 |
swea 1979 [D2] 어디에 단어가 들어갈 수 있을까 JAVA (0) | 2023.11.22 |
swea 1976 [D2] 시각 덧셈 JAVA (0) | 2023.11.22 |
swea 1974 [D2] 스도쿠 검증 JAVA (0) | 2023.11.22 |