본문 바로가기
프로그래밍/백준 알고리즘 코드

백준 4344번 java 자바 평균은 넘겠지

by 졸린이 2020. 9. 8.
반응형

백준 4344번 java 자바 평균은 넘겠지

학생 수를 입력하고 점수를 각각 입력하고 평균을 낸다. 평균을 초과한 학생 비율을 출력하는 문제다.

 

예시 입출력해서 첫째 줄에 평균은 70인데 넘는 학생은 두 명이다. 그래서 40%이며 셋째 줄에 평균은 80인데 세 명중 넘는 학생은 1명이니 33.333%이다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import java.util.Scanner;
 
//baekjoon_4344
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int t = sc.nextInt();
        //테스트 케이스 입력 
        for(int i=0; i<t; i++
        {
            int stuN = sc.nextInt(); //학생 수
            double aver = 0//점수 평균
            int cnt = 0//평균넘는 학생 수
            double averOver; //평균 넘는 비율
            
            int scoAr[] = new int[stuN]; //점수 배열
            for(int j=0; j<stuN; j++)
            {
                scoAr[j] = sc.nextInt(); //점수 입력
                aver += scoAr[j]; //점수를 더한다.
            }
            aver /= stuN; //평균점수
            for(int k=0; k<stuN; k++)
            {    //평균보다 큰 점수가 있으면 카운트해준다.
                if(aver < scoAr[k])
                    cnt++;
            } //평균넘는 수/총학생 수 *100으로 평균이 넘는 비율  을 구함.
            averOver = (double)cnt / (double)stuN * 100;
            System.out.printf("%.3f", averOver);
            System.out.println("%");
        }
    }
}
 
cs

line 12, 14 : 평균과 비율은 소수점이 나오므로 double로 선언한다.

line 16 : 학생 수에 따라 배열을 선언한다.

line 20 : 평균을 구하기 위한 점수입력 시 합산을 한다.

line 22 : 점수 입력이 끝나면 평균점수를 구한다.

line 25 : 다시 배열을 돌면서 평균 초과의 점수가 있는지 검사하고 있을 때마다 cnt값을 증가시킨다.

line 28 : 평균이 넘는 비율을 구한다.

line 29~30 : 출력

반응형

댓글