본문 바로가기
Develop/알고리즘

[백준/Python] Bronze I #4344 평균은 넘겠지

by favorcat 2023. 1. 11.
반응형
 

4344번: 평균은 넘겠지

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

www.acmicpc.net

문제

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

입력

첫째 줄에는 테스트 케이스의 개수 C가 주어진다.

둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다.

출력

각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다.

풀이

c = int(input())
for i in range(c):
  n = list(map(int,input().split()))
  avg = sum(n[1:])/n[0]
  cnt = 0
  for k in n[1:]:
    if k > avg : cnt += 1
  res = cnt/n[0]*100
  print(f"{res:0.3f}%")

테스트 케이스의 개수 C
각 테스트 케이스마다 학생 수 N이 주어지고 그 뒤에는 N명의 각 점수가 주어짐
점수는 0보다 크거나 같고, 100보다 작거나 같은 정수

C만큼 반복을 하여, 각 줄을 하나의 리스트로 받아온다.
그러고 나서 리스트의 1번째부터 끝까지를 모두 더한 다음 0번째(학생수 N)의 수로 나누면 평균을 구할 수 있다.
평균을 구한 다음, 다시 리스트의 1번째부터 끝까지 돌면서 평균보다 큰지 검사를 해서 크다면 cnt에 1을 더해준다.
구한 cnt값을 퍼센트로 변환해 res에 넣어준다.
평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력해야 하므로, format을 이용하여 셋째 자리까지 출력해준다.

반응형

Comment