Skip to content

[백준] 4344. 평균은 넘겠지

각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어질 때, 각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력하라.


처음에 평균 점수를 중간 저장 없이 각 for loop 마다 계산하도록 했더니 처리 속도가 느려져서, 아래와 같이 평균 점수를 중간에 저장해주었더니 처리 속도가 빨라지는 것을 확인할 수 있었다.

def res(a):
    mean = sum(a) / len(a)
    return round(len([i for i in a if i > mean]) / len(a) * 100, 3)


for a in [[int(x) for x in input().split()[1:]] for _ in range(int(input()))]:
    print(f'{res(a):.3f}%')

Reference