푸르미르

[python]4344.평균은 넘겠지 본문

Baekjoon Online Judge

[python]4344.평균은 넘겠지

((•_•)) 2021. 1. 2. 14:06

 

너무해..

 

 

 대학교 새내기들에게 인생이 무엇인가를 보여주는 잔인한 프로그램을 만드는 문제이다.

나도 대학교 때 평균은 넘겠지라는 생각을 했었는데 성적을 보고 세상이 호락호락 하지 않구나를 느꼈다.

평균을 넘는 점수의 비율을 출력하는 프로그램이다.

 

1
2
3
4
5
6
7
8
9
10
case = int(input()) #케이스 개수 입력
a=0 #평균을 넘는 학생 수를 보관
for i  in range(case):
    num_list = list(map(int, input().split())) #사람 수 및 점수 입력
    avgS=sum(num_list)/num_list[0#평균 계산
    for j in range(1,num_list[0]+1):
        if num_list[j]>=avgS:
            a+=1
    print('%.3f%% '%(a/num_list[0]*100)) #비율 출력
    a=0
cs

 

 

처음에 이렇게 했었는데 4번째 케이스가 3 70 90 81로 입력 되었을 때, 비율이 66.667%이 나와야 하는데 33.333%가 나와 이유를 분석했다. 4번째의 평균은 81.333으로 마지막 81이 평균을 넘는 비율에 포함이 되지 않아서임을 알았다. 그래서 평균의 소수점을 버리기로 결정했다. 결론적으로 7번째 코드를 수정하여,

 

1
2
3
4
5
6
7
8
9
10
case = int(input()) #케이스 개수 입력
a=0 #평균을 넘는 학생 수를 보관
for i  in range(case):
    num_list = list(map(int, input().split())) #사람 수 및 점수 입력
    avgS=sum(num_list)/num_list[0#평균 계산
    for j in range(1,num_list[0]+1):
        if num_list[j]>=int(avgS):
            a+=1
    print('%.3f%% '%(a/num_list[0]*100)) #비율 출력
    a=0
cs

 

이렇게 나왔다. 

 

www.acmicpc.net/problem/4344

'Baekjoon Online Judge' 카테고리의 다른 글

[python]4673.셀프넘버  (0) 2021.01.04
[python]15596.정수 N개의 합  (0) 2021.01.02
[python]3052.나머지  (2) 2021.01.01
[python]2577.숫자의 개수  (0) 2021.01.01
[python]2562.최댓값  (0) 2021.01.01