반응형
문제
대학생 새내기들의 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을 이용하여 셋째 자리까지 출력해준다.
반응형
'Develop > 알고리즘' 카테고리의 다른 글
[백준/Python] Gold V #2447 별 찍기 - 10 (0) | 2023.01.12 |
---|---|
[백준/Python] Bronze I #1357 뒤집힌 덧셈 (0) | 2023.01.11 |
[백준/Python] Bronze V #25304 영수증 (0) | 2023.01.11 |
[백준/Python] Bronze V #4101 크냐? (0) | 2023.01.11 |
[백준/Python] Bronze III #1247 부호 (0) | 2023.01.11 |
Comment