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% 형식으로 출력해야하므로 

복사했습니다!