문제
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
www.swexpertacademy.com
풀이
- 평점을 미리 배열에 저장한다.
- 한 학생의 점수들이 주어질 때마다 총점을 구해서 배열에 저장한다.
- K번째 학생의 점수를 따로 저장해놓는다.
- 학생들의 점수를 저장한 배열을 정렬한 후에 K번째 학생의 점수를 찾아서 해당 index를 따로 저장한다.
- 위에서 저장한 index값을 (N/10)으로 나누면 평점 배열의 index가 된다. (N/10 만큼씩 동일한 평점을 받기 때문)
- 위에서 구한 평점 배열의 index값으로 평점 배열 값을 출력.
import java.io.*;
import java.util.*;
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int T = Integer.parseInt(br.readLine());
String[] grade = {"D0","C-","C0","C+","B-","B0","B+","A-","A0","A+"};
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())-1;
int[] total = new int[N];
for(int i=0; i<N; i++) {
st = new StringTokenizer(br.readLine());
int midScore = Integer.parseInt(st.nextToken());
int finalScore = Integer.parseInt(st.nextToken());
int homework = Integer.parseInt(st.nextToken());
total[i] = midScore*35 + finalScore*45 + homework*20; //총점의 값 자체는 중요하지 않으므로 정수형으로 곱해줬다.
}
int score = total[K];
Arrays.sort(total);
int index = -1;
for(int i=0; i<N; i++) {
if(total[i] == score) {
index = i; //K번째 학생의 성적 위치
break;
}
}
int ans = index/(N/10);
System.out.println("#"+tc+" "+grade[ans]);
}
}
}
'SWEA > D2' 카테고리의 다른 글
| [SWEA] 1979. 어디에 단어가 들어갈 수 있을까 (0) | 2019.05.02 |
|---|---|
| [SWEA] 1976. 시각 덧셈 (0) | 2019.05.02 |
| [SWEA] 1984. 중간 평균값 구하기 (0) | 2019.05.01 |
| [SWEA] 1986. 지그재그 숫자 (0) | 2019.04.30 |
| [SWEA] 1989. 초심자의 회문 검사 (0) | 2019.04.30 |