본문 바로가기

알고리즘 공부/백준 > Python3

[백준 파이썬] #4344: 평균은 넘겠지

https://www.acmicpc.net/problem/4344

 

4344번: 평균은 넘겠지

대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다.

www.acmicpc.net

 

[정답]

C=int(input())
for i in range(C):
    sum,average,rate,plus=0,0,0,0
    score_list=list(input().split())
    N=int(score_list[0])
    for i in range(1,len(score_list)):
        sum+=int(score_list[i])
    average=sum/N
    for i in range(1,len(score_list)):
        if average<int(score_list[i]):
            plus+=1
    rate=round((plus/N)*100,3)
    print("%0.3f%%" %rate)


 

score_list=list(input())

입력값 : 10 20 30
출력값 : ['1', '0', ' ', '2', '0', ' ', '3', '0']

 

score_list=list(input().split())

입력값 : 10 20 30

출력값 : ['10', '20', '30']

 

 

☆ 내가 이 문제에서 헤맸던 부분 → 반올림해서 소수점 셋째자리까지 출력하기

rate=round((plus/N)*100,3) 

print("%0.3f%%" %rate)

 

round함수

실수를 반올림할 때 사용하는 함수

사용방법 : round(A,B)

A는 해당 실수, B는 몇째자리까지 반올림할 것인지를 의미

이 문제의 경우, 소수점 셋째자리까지 표현해야 하니까 B=3이다.

 

소수점 자리 정해서 실수 출력하는 방법

사용방법 : print("%0.nf"%A)

n은 몇째자리까지 표현할 것인지, A는 해당 실수를 의미

ex) print("%0.3f"%1.23456) → 1.235

 

%를 출력하기 위해서 사용하는 %%

print("%0.3f%%" %rate)