
https://www.acmicpc.net/problem/4344
4344번: 평균은 넘겠지
대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다.
www.acmicpc.net
문제
대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다.
입력
첫째 줄에는 테스트 케이스의 개수 C가 주어진다.
둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다.
출력
각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다.
코드
c = int(input())
for _ in range(c):
score = list(map(int,input().split()))
avg = sum(score[1:])/score[0]
num=0
for i in score[1:]:
if i>avg:
num += 1
ans=num/score[0]*100
print('{0:0.3f}%'.format(ans))
c에 테스트 개수 입력 받는다.
학생의 점수들을 score 리스트에 저장한다.
학생들의 평균은 score의 1번쨰 원소를 제외한 원소들의 합을 첫번째 원소로 나누어서 구한다.
score의 2번째 원소부터 끝까지 for 문을 돌리면서 평균과 비교하여 평균보다 크다면 num의 값을 +1 해준다.
구해진 num의 값은 평균을 넘는 학생 수가 될 것이다.
최종 num 값으로 평균을 넘는 학생들의 비율을 구한다 . (ans)
출력할때는 00.000% 형식으로 출력해야하므로
'Python > Backjoon' 카테고리의 다른 글
[백준/python] 2738번 행렬 덧셈 (2차원 배열) (0) | 2023.01.16 |
---|---|
[백준/python] 1271번 엄청난 부자2 (1) | 2023.01.16 |
[백준/python] 8958번 OX퀴즈 (0) | 2023.01.12 |
[백준/python] 5597번 과제 안 내신 분..? / remove함수 (0) | 2023.01.11 |
[백준/python] 10807번 개수세기 (count함수) (0) | 2023.01.11 |