반응형

문제풀이

1. 각 줄의 첫 번째 요소는 학생수, 그 다음 요소들은 학생들의 점수들이므로 평균을 구한 후, 평균 이상인 학생수를 구해 전체 학생수로 나눠준다.

2. *100을 한 후, 소수점 세자리로 끊어준다. '.3f' 포맷을 활용한다.

Python Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import sys
readline = sys.stdin.readline
 
def main(n):
    for _ in range(n):
        nums = list(map(int,readline().split()))
        # 평균 = (첫번째 요소를 제외한 요소들의 합)/(첫번째 요소를 제외한 요소들의 개수)
        mean = sum(nums[1:])/nums[0]
        # 평균보다 큰 요소만큼 리스트에 1을 넣고 리스트의 총합을 구하면 평균을 넘는 학생의 비율이 된다.
        print('%.3f'%(sum(1 for x in nums[1:] if x > mean)*100/nums[0]) + '%')
 
if __name__ == '__main__':
    n =int(readline())
    main(n)
cs

문제 링크

 

4344번: 평균은 넘겠지

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

www.acmicpc.net

 

반응형

'알고리즘 > 백준' 카테고리의 다른 글

백준 4673 셀프 넘버 Python  (0) 2020.12.10
백준 1946 신입 사원  (0) 2020.12.09
백준 20162 간식 파티 Python  (0) 2020.12.08
백준 1149 RGB거리 Python  (0) 2020.12.08
백준 1309 동물원  (0) 2020.12.07

+ Recent posts