티스토리 뷰
평균은 넘겠지
문제
대학생 새내기들의 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
'Study > Baekjoon' 카테고리의 다른 글
[Python] 백준 1157번 단어 공부 | 대소문자, list 최빈값 구하기 (0) | 2023.03.27 |
---|---|
[Python] 백준 11718번 그대로 출력하기 | EOFError, sys.stdin (0) | 2023.03.24 |
[Python] 백준 10811번 바구니 뒤집기 | list[::-1], list.reverse() 역순 (0) | 2023.03.21 |
[Python] 백준 5597번 과제 안 내신분..? | list.remove() (0) | 2023.03.20 |
[Python] 백준 2566번 최댓값 | 2차원 배열 최댓값 찾기 (0) | 2023.03.19 |