본문 바로가기

백준

2024.6.27 백준(Python) 4344 평균은 넘겠지

평균은 넘겠지 스페셜 저지다국어

문제

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

입력

첫째 줄에는 테스트 케이스의 개수 C가 주어진다.

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

출력

각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다. 정답과 출력값의 절대/상대 오차는 10-3이하이면 정답이다.

예제 입력 1 복사

5
5 50 50 70 80 100
7 100 95 90 80 70 60 50
3 70 90 80
3 70 90 81
9 100 99 98 97 96 95 94 93 91

예제 출력 1 복사

40.000%
57.143%
33.333%
66.667%
55.556%

 

정답 코드

Test_case = int(input())

for _ in range(Test_case):
    # 한 줄로 입력받아서 각 점수를 리스트로 변환
    data = list(map(int, input().split()))
    
    # 학생 수는 첫 번째 요소, 점수 리스트는 그 이후의 요소들
    Score_case = data[0]
    Student_scores = data[1:]
    
    # 점수의 합과 평균을 계산
    total = sum(Student_scores)
    average = total / Score_case
    
    # 평균 이상의 점수 학생 수를 계산
    U_stu = sum(1 for score in Student_scores if score > average)
    
    # 평균 이상의 학생 비율 계산
    result = (U_stu / Score_case) * 100
    
    # 결과를 소수점 셋째 자리까지 반올림하고 포매팅
    formatted_result = f"{result:.3f}"
    
    # 출력할 때 공백 없이 출력
    print(formatted_result, "%", sep="")