https://www.acmicpc.net/problem/4344
문제
대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다.
입력
첫째 줄에는 테스트 케이스의 개수 C가 주어진다.
둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다.
출력
각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다.
예제 입력 | 예제 출력 |
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 |
40.000% 57.143% 33.333% 66.667% 55.556% |
Python의 list comprehension을 이용하여 간단하게 구현할 수 있다.
평균이 넘는 점수만 새로운 리스트에 추가하고, 해당 리스트의 길이를 구하면 된다.
Python3
for _ in range(int(input())):
s = list(map(int, input().split()))
n, s = s[0], s[1:]
a = sum(s) / n
print("%.3f%%" % (len([x for x in s if x > a])/n*100))
'일하는 > Algorithm, Coding' 카테고리의 다른 글
[BAE/<JOON>][백준][#1011] Fly me to the Alpha Centauri (0) | 2019.09.19 |
---|---|
[BAE/<JOON>][백준][#2839] 설탕 배달 (0) | 2019.09.19 |
[BAE/<JOON>][백준][#1712] 손익분기점 (0) | 2019.09.19 |
[BAE/<JOON>][백준][#1152] 단어의 개수 (0) | 2019.09.19 |
[BAE/<JOON>][백준][#1157] 단어 공부 (0) | 2019.09.19 |