반응형
평균은 넘겠지
한국어
시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 | 256 MB | 167471 | 60716 | 50827 | 36.425% |
문제
대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다.
입력
첫째 줄에는 테스트 케이스의 개수 C가 주어진다.
둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다.
출력
각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다.
예제 입력 1 복사
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
예제 출력 1 복사
40.000%
57.143%
33.333%
66.667%
55.556%
출처
Contest > Waterloo's local Programming Contests > 28 September, 2002 D번
- 문제를 번역한 사람: busyhuman
- 문제의 오타를 찾은 사람: choiking10, eric00513
- 어색한 표현을 찾은 사람: djm03178
정답 코드 :
import sys
n = int(input())
for _ in range(n):
c, *l = map(int, sys.stdin.readline().split())
average = sum(l)/c
overAverageStudents = 0
for i in l:
if i > average:
overAverageStudents += 1
else:
continue
print(format(overAverageStudents/c*100, ".3f")+'%')
풀이 :
평균보다 더 높은* 점수를 가진 학생들의 비율을 구하는 문제이다. (같은 경우 X 미포함)
c, *l = 입력값을 받으면 c는 맨 처음 받은 입력값을, 그리고 나머지가 list로 자동 저장된다.
average = 해당 학생들의 성적 평균을 나타내고
overAverageStudents = 0을 선언해준다.
for 문으로 l 리스트의 학생 점수들을 하나씩 average와 비교하여 더 큰 경우에 overAverageStudents 수를 1씩 증가시킨다.
for문을 나가기 전 print()로 평균보다 높은 점수를 받은 학생을 전체 학생 (c)로 나누어 100을 곱한 후 format(x, ".3f")으로 소수점 3자리까지 나오도록 포맷화 한다.
반응형
'Python > Python 코딩테스트' 카테고리의 다른 글
[백준] 8958번 OX퀴즈 파이썬 python (0) | 2022.01.26 |
---|---|
[백준] 1065번 한수 파이썬 python (0) | 2022.01.26 |
[백준] 1110번 더하기 사이클 파이썬 python (0) | 2022.01.26 |
[백준] 10951번 A+B-4 파이썬 python (0) | 2022.01.26 |
[백준] 10952번 A+B-5 파이썬 python (0) | 2022.01.26 |
댓글