Notice
Recent Posts
Recent Comments
Link
«   2026/04   »
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
Tags more
Archives
Today
Total
관리 메뉴

luke

[백준] - 평균은 넘겠지 (4344) (Java/자바) 본문

알고리즘문제/백준 문제(Java)

[백준] - 평균은 넘겠지 (4344) (Java/자바)

luke-king 2025. 7. 23. 20:14

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

 

 

 

 

 

 

 

 

 

 

문제.


 

 

 

 

 

 

 

풀이.


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

        for(int i = 0; i < c; i++){
            int n = sc.nextInt(); //학생 수
            arr = new int[n]; 

            double sum = 0;
            for(int j = 0; j < n; j++){

                arr[j] = sc.nextInt(); //점수 입력
                sum += arr[j]; // 점수 합산
            }

            double avg = (sum/n); // 평균
            double count = 0; // 평균 이상인 학생

            for(int j = 0; j < n; j++){
                if(arr[j] > avg){
                    count++;
                }
            }
            System.out.printf("%.3f%%\n", (count/n)*100);
        }
        sc.close();
    }

}

 

이번 문제는 백준 "평균은 넘겠지" 문제다.

문제의 큰 내용은 테스트 케이스 C 만큼 입력 후 학생 수 인 N을 입력해 점수를 입력해준다. 그 후 각 케이스 평균을 구해 평균 넘는 학생 비율을 구하는 거다. 그럼 바로 풀이 해보겠다.

 

1. 케이스 마다 점수를 담아주기 위해 arr[] 배열을 생성한다.

 

2. 테스트 케이스 입력을 위해 첫번째 for문 생성.

(학생 수 입력 후 arr[] 사이즈를 지정)

 

3. 두번째 for문 에서는 학생 수 를 지정했으니 각각 점수를 입력 해준다. 그와 동시에 점수를 합산.

 

4. 합산된 점수와 학생수를 나누어 평균을 구해준다.

 

5. 마지막 for문에서 arr[] 의 각 점수 들과 avg(평균)을 비교해 평균 이상인 사람을 카운트 한다(count)

 

6. 카운트 되었다면 printf()를 사용해 %.3f로 소수점 3자리까지 출력되게 해준다.