728x90
파이썬
브1 평균은 넘겠지
더보기
문제
대학생 새내기들의 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%
맞은 코드
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
import sys
input = sys.stdin.readline
C = int(input())
result = 0
for i in range(C):
testCase = list(map(int, input().split()))
num = []
for j in range(1, testCase[0]+1):
num.append(testCase[j])
numAvg = sum(num)/testCase[0]
cnt = 0
for n in num:
if n > numAvg:
cnt += 1
result = round(cnt / testCase[0]*100, 3)
print("{:.3f}%".format(result))
|
cs |
파이썬 내장 함수인 round()를 사용하면 반올림을 할 수 있다.
인자는 기본적으로 두 개를 받는다.
첫 번째 인자 수를 두 번째 인자 소수 자리까지 반올림한다.
round(5.7142, 2)
이렇게 하면 5.7142를 소수 둘째 자리까지 반올림하여 결과는 5.71이 된다.
인자를 하나만 넣게 되면 인자에 가장 가까운 정수를 반환한다.
또한 round()는 반올림할 자리 앞자리의 숫자가 짝수이면 내림, 홀수면 올림을 한다.
즉, 반올림할 자리 숫자가 5이면 반환값이 무조건 짝수인 것이다.
그러나 round()로는 원래 자릿수가 두 번째 인자 소수점 자릿수보다 작을 경우에는 자릿수를 맞출 수가 없다.
이 예제에선 40.000%이 round()로는 40.0%까지만 출력이 된다.
따라서 format()를 이용하여 소수점 자릿수를 지정해주었다.
"{:.3f}".format(실수)
이렇게 하면 무조건 소수 셋째 자리까지 출력할 수 있다.
728x90
'Python' 카테고리의 다른 글
| 211207 파이썬 코딩테스트 수업 5일차, 백준 코딩연습 파이썬 2331 반복수열, 컴프리헨션 (0) | 2021.12.07 |
|---|---|
| 211206 백준 코딩연습 파이썬 11721 열 개씩 끊어 출력하기, 코딩테스트 수업 4일차 (0) | 2021.12.06 |
| 211203 파이썬 코딩테스트 수업 3일차 (0) | 2021.12.03 |
| 211202 파이썬 코딩테스트 수업 2일차 (0) | 2021.12.02 |
| 211201 파이썬 코딩테스트 수업 1일차 (0) | 2021.12.01 |




최근댓글