본문 바로가기

알고리즘/알고리즘

[백준] 평균은 넘겠지

첫째 줄에는 테스트 케이스의 개수 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 나누기

%표기는 %%

'알고리즘 > 알고리즘' 카테고리의 다른 글

[백준] No Duplicates  (0) 2021.09.27
[백준] 숫자의 개수  (0) 2021.09.27
[백준] 최댓값  (0) 2021.09.25
[백준] 곱하기  (0) 2021.09.25
[백준] 사칙연산  (0) 2021.09.25