문제

배열을 입력받을 배열의 개수를 입력받은 후 a만큼 돌면서 배열에 입력을 받아 평균값을 계산해서 이를 넘는 비율을 계산한다.
a = int(input())
data = []
for i in range(a):
cnt = 0
data = list(map(int,input().split()))
#평균 구하기
data.pop(0)
average = sum(data) / len(data)
#평균 넘는 비율 구하기
for j in data:
if j > average:
cnt += 1
result = cnt / len(data) * 100
print("{:.3f}%".format(result))
배열의 맨 첫부분은 평균점수를 구할 때 모든 과목의 합을 구하는 과정에서 필요가 없으므로 pop해서 데이터를 빼준다.
그 후 평균점수를 구하여 그 평균 점수를 넘는 학생의 수가 몇명인지 구한다.
비율을 구하는 공식은 평균을 넘은 학생 수 / 전체 학생의수 x 100 이므로 이 연산을 수행하여 소수점 셋째 자리까지의 값을 출력한다.
한 배열이 끝나고 다음 배열을 계산하기 위해선 다음 계산에 필요한 배열의 데이터도 새로 입력받고 평균을 넘은 학생의 수도 처음 0명부터 다시 구해야 하기 때문에 이를 구하기 위한 변수들은 꼭 첫 번째 for문 안에 선언해주어야 한다.
'Algorithm > 백준' 카테고리의 다른 글
| 백준 2675번 문자열반복 (0) | 2022.03.17 |
|---|---|
| 백준 10809번 알파벳찾기 (0) | 2022.03.17 |
| 백준 11720번 숫자의합 (0) | 2022.03.14 |
| 백준 8958번 OX퀴즈 (0) | 2022.03.14 |
| 백준 2577번 숫자의 개수 (0) | 2022.03.14 |