문제
풀이
- 평점을 미리 배열에 저장한다.
- 한 학생의 점수들이 주어질 때마다 총점을 구해서 배열에 저장한다.
- 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 |