개발 연습장/백준 문제풀이

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

LooanCheong 2022. 11. 28. 17:48
반응형

문제

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

 

4344번: 평균은 넘겠지

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

www.acmicpc.net

코드

C = int(input())
for _ in range(C):
    overmean = []
    Nscore = list(map(int, input().split()))
    mean = (sum(Nscore) - Nscore[0])/(len(Nscore)-1)
    for i in range(1, len(Nscore)):
        if Nscore[i] > mean:
            overmean.append(Nscore[i])
        else:
            continue
    per = len(overmean) / (len(Nscore)-1) * 100
    print("{:.3f}%".format(per))

설명

우선 C로 케이스 테스트 개수를 받아준다.

각 케이스마다 학생 수와 평균의 개수를 받아주고,
score를 sum 함수를 통해 더해주는데, 맨 처음 수는 학생의 수이므로 빼준다.
이후 Nscore에서 1을 빼준(학생 수를 빼준) 수로 나누어서 평균을 구한다.

평균보다 높은 수가 존재한다면, overmean 에 append 해주고 아니라면 아무것도 하지 않고 넘어간다.

퍼센트로 구해주기 위해, overmean의 개수를 학생 수로 나누어 준 수에 100을 곱해주고,
소수점 셋째 자리까지 출력을 하기 위해,
format함수로 출력해준다

반응형