https://www.acmicpc.net/problem/4344
testcase = int(input())
for i in range(testcase):
scores = list(map(int, input().split(' ')))
avg = sum(scores[1:]) / scores[0]
cnt = 0
for j in scores[1:]:
if j > avg:
cnt += 1
per = (cnt / scores[0] * 100)
print('%.3f' % per + '%')
테스트케이스 처리하는 것에서 오래걸렸다.
결국 한번에 배열로 받고, 0번째는 개수로 사용하고 1부터 실제 적용되는 점수로 생각했다.
여기서 sum라이브러리를 활용해서 scores 함수1부터 끝까지의 점수를 모두 더해주었다.
그리고 0번째 인덱스인 갯수로 나누어서 평균값을 구해주었다.
다시 for문을 통해서 평균값보다 높은 점수의 개수를 파악하고, 퍼센티이지를 구해줘야하는데
처음에는 per = cnt*100 / socre[0]으로 해주었다고 바꾸었다.
또한 비율을 반올림하여 3번째 자리까지 출력하는 부분에서 오랜 시간이 걸렸다.
round(per,3)을 사용했는데 40.000이 나오지않고 40.0까지만 나온다.
이거때문에 오랜시간이 걸렸다. 그래서 다른방법을 사용하는데
'%.3f' % per format을 사용하는 것이다. per에 대한 3번째 자리수까지 표현해주는 것이다.