이번 문제는 처음으로 케이스 개수를 입력받고,
각 케이스마다 학생 수와 학생들이 받은 점수들을 입력받는다
그리고 평균값을 내고, 그 평균을 넘기는 학생의 수를 백분위 평균을 내서 출력하는 문제이다.
num = int(input())
for i in range(num):
a = list(map(int, input().split()))
avg = sum(a[1:])/a[0]
count = 0
for score in a[1:]:
if score > avg:
count += 1
print('%.3f' %((count/a[0])*100)+'%')
여기에서 중요한 것은 a[1:]/a[0] 부분이다
케이스를 입력받는 구조 상 첫번째 숫자는 학생 수고, 그 이후로는 학생들이 각자 받은 점수들이다
즉, sum(a[1:])은 전체 학생들이 받은 점수를 합하는 거고, 이를 a[0] 즉 학생 수로 나눠서 평균을 내는 것이다
for 문으로 score에 학생들의 점수를 하나씩 대입해 평균을 넘기면 count의 숫자를 하나씩 올리고
이는 곧 전체적인 평균을 내는 데 사용된다
'코딩 테스트 > 백준 파이썬 문제 풀이' 카테고리의 다른 글
[백준 4673번 파이썬] 셀프 넘버 (0) | 2022.04.01 |
---|---|
[백준 15596번 파이썬] 정수 N개의 합 (0) | 2022.04.01 |
[백준 8958번 파이썬] OX퀴즈 (0) | 2022.03.31 |
[백준 1546번 파이썬] 평균 (0) | 2022.03.31 |
[백준 3052번 파이썬] 나머지 (0) | 2022.03.31 |