첫째 줄에는 테스트 케이스의 개수 C가 주어진다.
둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다.
각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다.
package com.company;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class test17 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int h = Integer.parseInt(br.readLine()); // 배열의 길이
// 배열의 길이, 값 입력
for(int i=0; i<h; i++){
String[] str = br.readLine().split(" ");// 배열
//System.out.println(Arrays.toString(str));
float sum =0f;
int size =Integer.parseInt(str[0]);
for(int j=1; j<=size; j++){
sum += Float.parseFloat(str[j]);
}
float mod = sum/size;//평균값
//System.out.println("평균 값: "+mod);
float count =0f;
for(int j=1; j<=size; j++){
if( Float.parseFloat(str[j]) > mod){ //여기서 문제!!! >= 이걸로 하면 안됨
count ++;
}
}//for j2
float round_num = Math.round(count/size*100000);//반올림 때문에 100 * 1000
String student_mod =String.format("%.3f%%", round_num/1000); // 1000 나누기
System.out.println(student_mod);
}//for i
}//main
}
포인트
평균을 넘는 > >= 이거 아님
float round_num = Math.round(count/size*100000);//반올림 때문에 100 * 1000
String student_mod =String.format("%.3f%%", round_num/1000); // 1000 나누기
%표기는 %%
'학습 기록 (Learning Logs) > 알고리즘' 카테고리의 다른 글
[백준] No Duplicates (0) | 2021.09.27 |
---|---|
[백준] 숫자의 개수 (0) | 2021.09.27 |
[백준] 최댓값 (0) | 2021.09.25 |
[백준] 곱하기 (0) | 2021.09.25 |
[백준] 사칙연산 (0) | 2021.09.25 |