문제
대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다.
입력
첫째 줄에는 테스트 케이스의 개수 C가 주어진다.
둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다.
출력
각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다.
풀이
c = int(input())
for i in range(c):
data = list(map(int, input().split()))
# data[0]은 학생 수니까, data[1:]를 socres라는 list로 따로 만들어주는 방법도 있음.
# scores = list(map(int, data[1:]))
# 대신에 나는 data[0]를 n_std라는 변수로 따로 할당했음.
n_std = data[0]
average = (sum(data)-n_std)/n_std
count = 0
for j in range(1, n_std+1):
if data[j] > average:
count += 1
print(f"{count/n_std*100:.3f}%")
# print(format(count/n_std*100, ".3f"), "%", sep="")
생각
평균을 넘는 학생을 구하랬는데 평균 이상 학생을 구해서 틀렸다. 실전 코테에서 이렇게 틀리면 진짜 억울하겠지?
문제 똑바로 보자,,,
'👩🏻💻 Front-end > 👾 Algorithm' 카테고리의 다른 글
백준 1157 - 단어공부 (Python) (0) | 2022.05.02 |
---|---|
백준 4673 - 셀프 넘버 (Python) (0) | 2022.05.01 |
백준 4884 - FIFA 월드컵 (Python) (0) | 2022.04.24 |
백준 1110 - 더하기 사이클 (Python) (0) | 2022.04.23 |
백준 1032 - 명령 프롬프트 (Python) (0) | 2022.04.23 |