본문 바로가기

Algorithm/Baekjoon

백준(4344번) - 평균은 넘겠지

백준 - 평균은 넘겠지

 

4344번: 평균은 넘겠지

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

www.acmicpc.net

 

 

문제

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

 

입력

  • 첫째 줄에는 테스트 케이스의 개수 C가 주어진다.
  • 둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다.

 

출력

  • 각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다.

 

입출력 예제

 

 

설명

  1. 각 테스트 케이스 마다 배열에 점수를 저장하고 평균을 구한다.
  2. 점수 배열에서 평균보다 큰 점수의 개수를 count한다.
  3. 총 점수의 개수 중 평균이 넘는 개수의 비율을 구하고 소수점 3번째 자리까지 포멧을 세팅한다.
  4. 주의할 점 : 평균 계산 or 최종 비율 계산시 int로만 계산하면 소수점이 잘리기 때문에 오답이 나올 수 있다.

 

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
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
    // 4344번 - 평균은 넘겠지
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st;
        int n = Integer.valueOf(br.readLine());
        double total, average;     
        int aboveStudentCnt;       // 평균점수 초과 학생수
        for(int i=0; i<n; i++) {
            total = 0.0;
            st = new StringTokenizer(br.readLine());
            aboveStudentCnt = 0;
            double [] scoreArray = new double[Integer.valueOf(st.nextToken())];  // 하나의 테스트 케이스의 학색들 점수를 담는 1차원 배열
            for(int j=0; j<scoreArray.length; j++) {
                scoreArray[j] = Integer.valueOf(st.nextToken());
                total += scoreArray[j];    // 점수 합산
            }
            average = total/scoreArray.length// 평균
            for(double score : scoreArray) {   // 평균이상 count
                if(score > average)
                    aboveStudentCnt++;
            }
            System.out.println(String.format("%.3f",(aboveStudentCnt/Double.valueOf(scoreArray.length)) * 100)+"%");
        }
    }
}
cs

'Algorithm > Baekjoon' 카테고리의 다른 글

백준(4673번) - 셀프넘버  (0) 2021.07.15
백준(15596번) - 정수 N개의 합  (0) 2021.07.14
백준(8958번) - OX퀴즈  (0) 2021.07.12
백준(1546번) 평균  (0) 2021.07.10
백준(2577번) - 숫자의 개수  (0) 2021.07.08