본문 바로가기
코딩공부/백준 (java)

[백준 4344] 평균은 넘겠지 (java)

by CodingKwon 2021. 7. 5.

문제 링크

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

 

4344번: 평균은 넘겠지

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

www.acmicpc.net

 

나의 코드 (java)

import java.util.Scanner;

public class Main {
    public static void main (String[] args) {
        Scanner sc = new Scanner(System.in);
        
        // 총 몇 개를 받을지 받는 변수
        int n = sc.nextInt();
        for (int i=0; i<n; i++){
            // 한 줄당 학생의 수
            int num = sc.nextInt();
            // 한 줄마다 학생의 점수를 받을 배열
            int arr[] = new int[num];
            // 합계를 계산할 변수
            int sum = 0;
            for (int j=0; j<num; j++){
                // 학생의 점수를 하나씩 받음
                arr[j] = sc.nextInt();
                // 학생의 점수 합계
                sum += arr[j];
            }
            // 학생들의 평균
            float mean = Float.valueOf(sum) / num;
            // 평균보다 높은 점수를 가진 학생 수 카운트할 변수
            float cnt = 0;
            // 평균보다 높은 학생의 수를 카운트
            for (int k=0; k<num; k++){
                if (mean < arr[k]){
                    cnt++;
                }
            }
            // 평균보다 높은 점수의 학생들의 비율을 계산
            float result = cnt / num * 100;
            // 결과 출력
            System.out.printf("%.3f%%\n", result);
        }
    }
}

 

이 문제는 크게 어려운 점은 없이 주석만 보면 의미를 알 수 있지만 float으로 형 변환하는 방법 Float.valuOf와 소수점 셋째 자릿수까지 출력하는 방법과 마지막에 %를 붙여서 출력하는 방법인 System.out.printf("%.3f%%\n", result);라는 방식을 알아야 합니다.

'코딩공부 > 백준 (java)' 카테고리의 다른 글

[백준 4673] 셀프 넘버 (java)  (0) 2021.07.07
[백준 15596] 정수 N개의 합 (java)  (0) 2021.07.07
[백준 8958] OX퀴즈 (java)  (0) 2021.07.05
[백준 1546] 평균 (java)  (0) 2021.07.05
[백준 3052] 나머지 (java)  (0) 2021.07.05

댓글