코딩일지/python 백준 알고리즘

python 백준 알고리즘 4344번: 평균은 넘겠지

야언 2022. 9. 5. 01:59

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

 

4344번: 평균은 넘겠지

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

www.acmicpc.net

테스트케이스 c만큼 range

둘째줄부터 첫 수는 학생의 수 N ([0]), 이후 N명의 점수 ([1:])

점수/N 으로 평균구해서 각 점수와 비교해

평균보다 높은 학생의 비율을 소수점 셋째 자리까지 출력(format 함수 이용)

 

 

내 제출

C = int(input())    # 케이스의 수

for _ in range(C):
    scores = list(map(int,input().split()))
    avg = sum(scores[1:])/scores[0]   # 평균 구하기 scores[1:]은 점수부분, scores[0]은 학생수
    cnt = 0
    for score in scores[1:]:
        if score > avg:
            cnt += 1    # 평균 이상인 학생의 수
    rate = cnt/scores[0] * 100    # 평균 이상 학생 비율
    print(f'{rate:.3f}%')    # 소수점 셋째 자리까지 출력, f스트링 이용

 

f-string과 소수점 셋째자리까지 출력(.3f) 등의 출력함수를 사용하는 문제.

 

특기사항으로 소수점을 출력하는데 round 함수를 이용하려 했으나(round, 3) round 함수의 경우 예를 들어 40.000의 경우 40.000이 아닌 40.0 까지 밖에 표현하지 못하는 문제로 인해 오답처리된다.