백준 4344_평균은 넘겠지[C++]
본문 바로가기
Algorithm/Python, C++

백준 4344_평균은 넘겠지[C++]

by liveloper jay 2022. 1. 17.

문제

 

 

풀이

 이 문제를 정리하면 다음과 같습니다.

1. 테스트 케이스의 수를 받습니다. 

2. 테스트 케이스 별 학생의 수와 각 학생들의 점수를 입력 받습니다.

3. 입력받은 점수의 평균을 구합니다.

4. 입력받은 학생들의 점수와 평균 값을 비교한 후 평균을 넘는 학생이 몇명인지를 구합니다.

5. 입력받은 학생의 수 대비 평균을 넘는 학생의 수가 몇 퍼센트인지를 출력합니다.

6. 테스트 케이스의 수만큼 반복해 줍니다.

 

이 과정을 수행하기 위해 먼저 케이스 수를 입력받고, 입력받은 케이스의 수에서 학생의 수를 입력받고 그 수만큼 점수를 넣을 수 있는 배열을 생성해줍니다. 그 다음 점수를 입력 받으면서 더해주어 총점을 구해줍니다. 구해놓은 총점을 이용하여 평균값을 도출하고, 아까 점수를 입력받은 배열의 값과 평균값을 비교해주면서 평균을 넘으면 카운트 해주면 됩니다. 이 과정을 모두 마쳤으면 카운트 된 값과 학생의 수를 이용하여 퍼센트를 구해주고, 반복되는 동안 변수의 값을  계속해서 초기화 하는 방식으로 풀이를 진행해주면 됩니다. 아래 소스코드와 비교하면서 설명을 읽어주시면 이해하는데 조금 더 도움이 될 것 같습니다.

 

 

 

소스코드

#include <iostream>
using namespace std;

int main()
{
    int c, n;
    double count=0, total=0,avg;
    cin >>c;
    for (int i = 0; i < c; i++){
        cin >> n;
        total=0;
        count=0;
        double score[n];
        for (int j = 0; j < n; j++)
        {
            cin >> score[j];
            total+=score[j];
        }
        avg=total/(double)n;
        for (int k = 0; k < n; k++)
        {
            if (score[k]>avg) count++;
        }
        cout << fixed;
        cout.precision(3);
        cout << (count/n)*100 <<'%' << '\n';
    } 
}

 

 

'Algorithm > Python, C++' 카테고리의 다른 글

백준 10818_최소, 최대[C++]  (0) 2022.01.19
백준 8958_OX퀴즈[C++]  (0) 2022.01.18
백준 3052_나머지[C++]  (0) 2022.01.17
백준 2577_숫자의 개수[C++]  (0) 2022.01.17
백준 2562_최댓값[C++]  (0) 2022.01.17

댓글