728x90
반응형
문제:
대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다.
입력:
첫째 줄에는 테스트 케이스의 개수 C가 주어진다.
둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1<=N<=1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다.
출력:
각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다.
풀이 방법:
입력값들을 받는 함수 student와 그 입력 값을 받아서 비율을 계산해주는 blue라는 함수 두 개로 구성되어 있다. 입력이 학생의 수 이후에 점수들이 나타나는 형식으로 이루어져 있으므로 input().split()을 통해 리스트로 받아준 후 정수값과 리스트값으로 나누었다.
이를 blue에 넣어서 평균을 구하고 평균을 넘는 학생들의 수를 구하였다. 출력을 소수점 셋째 자리까지 출력해야 하는데 이는 round함수를 구하면 얻을 수 있다. round( value, number)로 구성되어 있는데 value를 소수점 number째 자리까지 반올림하여 출력해주는 함수이다. 따라서 round(value,3)과 같이 구하면 얻을 수 있다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | def blue(n,a): sumscore=0 person=0 for i in range(n): sumscore += int(a[i]) average=sumscore/n for i in range(n): if int(a[i]) > average: person +=1 else: pass print("%.3f%%" % round(person/n*100,3)) def student(c): for i in range(c): m=input().split() n=int(m[0]) a=m[1:] blue(n,a) c=input() c=int(c) student(c) | cs |
728x90
반응형
'Algorithm > Python' 카테고리의 다른 글
[BOJ]1065. 한수 (0) | 2019.04.03 |
---|---|
[BOJ]1110. 더하기 사이클 (0) | 2019.04.02 |
[BOJ]2839.설탕 배달 (1) | 2019.03.31 |
[BOJ]11718.그대로 출력하기 (0) | 2019.03.30 |
[Programmers]Lv 2. 라면공장 (0) | 2019.03.29 |