알고리즘/문제 풀이

4344번: 평균은 넘겠지

Themion 2021. 12. 22. 12:57

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

 

4344번: 평균은 넘겠지

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

www.acmicpc.net

각 테스트 케이스에서 평균을 구한 뒤, 평균을 넘는 인원의 퍼센티지를 구해 출력한다.

#include <cstdio>

#define MAX_N 1000

double test_case() {
    // score[i]: i번째 학생의 점수
    char score[MAX_N];
    // mean: 점수의 평균, ans: 평균을 넘는 학생의 비율
    double mean = 0, ans = 0;
    // 학생의 수
    int N;

    scanf("%d", &N);

    // 각 학생의 점수를 입력받은 뒤 mean에 그 합을 저장
    for (int i = 0; i < N; i++) {
        scanf("%hhd", score + i);
        mean += score[i];
    }

    // 점수의 평균을 구한 뒤 평균을 넘는 학생의 수를 ans에 저장
    mean /= N;
    for (int i = 0; i < N; i++) ans += score[i] > mean;

    // 구한 학생의 수를 퍼센티지로 변환해 반환
    return ans * 100.0 / (double)N;
}

int main() {
    int C;

    // 테스트 케이스의 수를 입력받아 각 테스트 케이스를 실행
    scanf("%d", &C);
    while (C--) printf("%.3f%%\n", test_case());

    return 0;
}

'알고리즘 > 문제 풀이' 카테고리의 다른 글

4600번: 정글의 법칙  (0) 2021.12.22
4386번: 별자리 만들기  (0) 2021.12.22
4307번: 개미  (0) 2021.12.22
4153번: 직각삼각형  (0) 2021.12.22
4150번: 피보나치 수  (0) 2021.12.22