#42. 백준 4344번 문제 풀이: 평균은 넘겠지 | 문제 원본 보기 |
--입력-- 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%
평균을 실수로 구해서 소수점 셋째 자리까지 출력하는 게 핵심이다. 소수점을 세자리까지 출력하는 문자열 포맷은 다음과 같다. 파이썬: f-string, f'{변수 :.xf}' print(f'{3.1415 :.2f}') # 3.14 , 소수 두자리까지 반옴림 출력 C언어: printf("%.3f", av); C++: cout 에서 사용할 경우. cout << fixed; cout.precision(n); // n 소수자릿수
c = int(input())
# 테스트 케이스 개수를 입력받아 정수로 변환해서 받는다.
for i in range(c): # 케이스 숫자 만큼 루프
a = list(map(int, input().split()))
# 공백으로 나누어진 숫자 목록을 입력받아 정수로 변환 후, 리스트로 받음
sum = 0 # 평균을 계산을 위한 합계
for j in range(1, a[0] + 1): # 1부터 첫숫자(a[0]) 까지 반복
sum += a[j] # 합계 계산
av = sum / a[0] # 평균계산
count = 0 # 평균을 넘는 점수수 카운트
for j in range(1, a[0] + 1): # 1부터 갯수만큼 반복
if a[j] > av: # 평균을 넘으면 카운트 증가
count += 1 # 카운트 증가
av = (count / a[0]) * 100 # 평균넘는 학생 수 평균 계산
print(f'{av :.3f}%') # f-string 으로 소수세자리까지 출력