티스토리 뷰

평균은 넘겠지

문제

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

입력

첫째 줄에는 테스트 케이스의 개수 C가 주어진다.

둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다.

출력

각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다.

예제 입력 1 복사

5
5 50 50 70 80 100
7 100 95 90 80 70 60 50
3 70 90 80
3 70 90 81
9 100 99 98 97 96 95 94 93 91

예제 출력 1 복사

40.000%
57.143%
33.333%
66.667%
55.556%

내 풀이

C = int(input())
for i in range(C):
    inp = input().split()
    N = int(inp[0])
    arr = list(map(int, inp[1:]))
    avg = sum(arr)/len(arr)
    ratio = sum([i>avg for i in arr])/len(arr)*100
    print(f'{ratio:.3f}%')

다른 풀이

n = int(input())
for i in range(n):
    c = 0
    s = [int(j) for j in input().split()]
    avg=sum(s[1:])/s[0]
    for k in s[1:]:
        if avg < k:
            c+=1
        else: pass
    print(f"{(c/(len(s[1:]))*100):.3f}%")

round(값, 반올림하려는 자릿수)

print(round(7.55555)) # 8
print(round(7.55555, 0)) # 8.0
print(round(7.55555, 1)) # 7.6
print(round(7.55555, 2)) # 7.56
print(round(7.55555, 3)) # 7.556

print('0.0f'%숫자)

print('%0.0f'%7.55555) # 8
print('%0.1f'%7.55555) # 7.6
print('%0.2f'%7.55555) # 7.56
print('%0.3f'%7.55555) # 7.556

f-string: print(f'{숫자:.0f}')

print(f'{7.55555:.0f}') # 8
print(f'{7.55555:.1f}') # 7.6
print(f'{7.55555:.2f}') # 7.56
print(f'{7.55555:.3f}') # 7.556
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함