티스토리 뷰

반응형

 

백준 문제 보기

 

4344번: 평균은 넘겠지

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

www.acmicpc.net

백준 문제 사진

 

이번 문제 또한 문제 이해 자체는 그리 어렵지 않을 것이다.

 

바로 코드로 들어가보자.

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Q4344 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int N = Integer.parseInt(br.readLine());

        int sum=0;
        double average=0;
        double aboveAverage=0;
        for (int i = 0; i < N; i++) {
            StringTokenizer st = new StringTokenizer(br.readLine());
            int num = Integer.parseInt(st.nextToken());
            double[] arr = new double[num];
            sum=0;
            aboveAverage=0;
            for(int j=0; j<num; j++) {
                arr[j] = Integer.parseInt(st.nextToken());
                sum+=arr[j];
                // 평균 넘는 갯수 구해서 aboveAverage/num*100 출력
            }
                average = sum/num; // 평균 구하기
            for(int j=0; j<arr.length; j++) {
                if(arr[j]>average) {
                    aboveAverage++;
                }
            }
            System.out.printf("%.3f%s%n",aboveAverage/num*100,"%");
        }
    }
}

 

코드 자체도 이해하는데 큰 어려움은 없을 것이다.

N(테스트 케이스)을 입력받아

첫번째 for문을 돌린다.

 

하나의 테스트케이스에

학생 수가 정해져있으므로

num를 st.nextToken()으로 받고

다시 한 번 for 반복문을 돌린다.

(num번만큼)

 

arr를 만들어서 값을 집어넣고

sum(합계) 변수에 arr각 값을 더한다.

 

📌

평균 = 총점 / 학생 수

이므로

average = sum/num으로 평균을 구하고

 

aboveAverage : 평균 이상인 학생을 카운팅하는 변수

점수가 평균보다 높으면 aboveAverage를 증가시킨다.

 

 

출력문은

.3f소수점 셋째자리까지 나타내겠다는 의미이고,

,뒤에 있는 aboveAverage/num*100의 값이 소수점 셋째자리까지 출력된다.

 

%s

java의 printf문에서

문자열을 출력할 때 사용하는 값으로

위의 코드에선

"%"

가 출력된다.

 

딱히 어려운 점은 없을 것이다.

 

 

 

출력결과를 보자.

출력결과

잘 출력되는 것을 볼 수 있다.

 

 

자 그럼 실행결과를 보자.

 


 

실행결과

 

실행결과

 


딱히 어려운 문제는 아니었다.

문제를 잘 읽으면 수식을 찾을 수 있는 문제였다.

문제를 읽을 때 간단한 알고리즘과 수식은

생각하면서 읽는 습관을 계속 들여야겠다.

 

 

문제를 보다 이해가 안되거나 설명이 이상한 부분이 있다면 댓글을 활용해주길 바란다.

😊

반응형