새벽의 기록

[백준 JAVA] 4344번 : 평균은 넘겠지[자바] 본문

백준

[백준 JAVA] 4344번 : 평균은 넘겠지[자바]

OneTen 2023. 6. 10. 10:00

https://www.acmicpc.net/problem/4344

 

4344번: 평균은 넘겠지

대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다.

www.acmicpc.net



문제

대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다.

입력

첫째 줄에는 테스트 케이스의 개수 C가 주어진다.

둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다.

출력

각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다.

풀이

import java.util.*;
import java.io.*;


public class Main {
    public static void main(String[] args) throws IOException {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        ArrayList<Double> arrayList = new ArrayList<>();


        int num = Integer.parseInt(br.readLine());

        for(int i=0;i<num;i++){
            String s = br.readLine();
            String[] s2 = s.split(" ");
            int member = Integer.parseInt(s2[0]);
            int avg=0;
            int cnt=0;

            for(int k=0;k<member;k++){
                avg+=Integer.parseInt(s2[k+1]);
            }

            for(int k=0;k<member;k++){
                if(Integer.parseInt(s2[k+1])>avg/member) cnt++;
            }

            double result = (double) cnt/(double) member*100.0;

            arrayList.add(result);

        }

        for(int i=0;i<num;i++){
            System.out.println(String.format("%.3f",arrayList.get(i))+"%");
        }

    }
}
Comments