JAVA

[BOJ/백준] 4344번 평균은넘겠지 (JAVA/자바)

n_0_jun 2024. 9. 3. 14:00
반응형

● 해설

  • 성적을 입력 할 배열 arr를 생성
  • testcase 즉, for문을 몇번 돌지 입력 받음
  • 학생수를 N으로 받고 arr에 N만큼 동적할당
  • sum을 double형으로 선언하여 성적 누적 합 변수를 선언
  • N번만큼 for문을 돌고, arr[j]번째에 성적을, sum에 성적누적합을 저장
  • mean으로 평균을 구하고, for문을 통해 평균을 넘는 학생 수를 카운트
  • (count/N)*100 즉, (평균이 넘는 학생수 / 전체 학생수) * 100 을 하여 백분위로 표현.

● 구현

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        int[] arr;

        int testcase = in.nextInt();

        for(int i = 0 ; i < testcase ; i++) {

            int N = in.nextInt();	//학생 수 
            arr = new int[N];

            double sum = 0;	// 성적 누적 합 변수 

            // 성적 입력부분 
            for(int j = 0 ; j < N ; j++) {
                int val = in.nextInt();	// 성적 입력 
                arr[j] = val;
                sum += val;	// 성적 누적 합 
            }

            double mean = (sum / N) ;
            double count = 0; // 평균 넘는 학생 수 변수 

            // 평균 넘는 학생 비율 찾기 
            for(int j = 0 ; j < N ; j++) {
                if(arr[j] > mean) {
                    count++;
                }
            }

            System.out.printf("%.3f%%\n",(count/N)*100);


        }
        in.close();
    }

}

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

 

 
반응형