문제
대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다.
입력
첫째 줄에는 테스트 케이스의 개수 C가 주어진다.
둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다.
출력
각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다.
4344번: 평균은 넘겠지
대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다.
www.acmicpc.net
Python3 코드
1
2
3
4
5
6
7
8
9
10
11
|
C = int(input()) # 케이스의 개수
for _ in range(C): # 개수 만큼 반복
Nums = list(map(int, input().split())) #list에 학생수와 점수를 저장
Avg = sum(Nums[1:])/Nums[0] # 평균을 구함 (nums[0]: 학생수, nums[1:] 점수)
cnt = 0 # 평균값 보다 이상인 학생 수
for score in Nums[1:]: # 1부터 점수이기때문에 [1:]
if score > Avg: # 평균 값보다 점수가 큰 경우
cnt += 1 # cnt 변수에 1씩 더해준다
rate = cnt/Nums[0] * 100 # rate에 평균이상의 학생수와 모든학생수를 나눈후 100을 곱한다
print(f'{rate:.3f}%') # f-string표기법 사용 .3f로 소수점 셋째 자리까지 출력
|
cs |
Python3 코드 풀이
코드 풀이는 주석처리하여 적어 두었습니다
'Coding Test > Python' 카테고리의 다른 글
백준 4673번 [Python] 셀프 넘버 (0) | 2022.04.07 |
---|---|
백준 15596번 [Python] 정수 N개의 합 (0) | 2022.04.07 |
백준 8958번 [Python] OX퀴즈 (0) | 2022.04.06 |
백준 1546번 [Python] 평균 (0) | 2022.04.04 |
백준 3052번 [Python] 나머지 (0) | 2022.04.04 |