작성일 :

문제 링크

4344번 - 평균은 넘겠지

설명

입력으로 학생들의 수와 학생들의 점수가 주어졌을 때, 평균이 넘는 학생의 비율을 계산하는 문제입니다.

따라서, 학생들의 평균 점수평균을 넘는 학생들의 수를 센 후 그 비율을 계산합니다.


Code

[ C# ]

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
namespace Solution {
  class Program {
    static void Main(string[] args) {

      var cntCase = int.Parse(Console.ReadLine()!);

      for (int c = 0; c < cntCase; c++) {
        var input = Console.ReadLine()!.Split(' ');

        var cntStudent = int.Parse(input[0]);

        var scores = new int[cntStudent];

        double totalScore = 0.0;
        for (int i = 0; i < cntStudent; i++) {
          scores[i] = int.Parse(input[i + 1]);
          totalScore += scores[i];
        }

        var avrg = totalScore / cntStudent;

        int cntOverAvrg = 0;
        foreach(var score in scores)
          if (score > avrg) cntOverAvrg++;

        var ratio = 100.0 * cntOverAvrg / cntStudent;

        Console.WriteLine($"{ratio:F3}%");
      }

    }
  }
}



[ C++ ]

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
35
36
#include <bits/stdc++.h>

using namespace std;

int main() {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);

  int cntCase; cin >> cntCase;

  for (int c = 0; c < cntCase; c++) {
    int cntStudent; cin >> cntStudent;

    vector<int> scores(cntStudent);

    double totalScore = 0.0;
    for (int i = 0; i < cntStudent; i++) {
      cin >> scores[i];
      totalScore += scores[i];
    }

    double avrg = totalScore / cntStudent;

    int cntOverAvrg = 0;
    for (int score : scores)
      if (score > avrg) cntOverAvrg++;

    double ratio = 100.0 * cntOverAvrg / cntStudent;

    cout.setf(ios::fixed); cout.precision(3);
    cout << ratio << "%\n";

  }

  return 0;
}