728x90
문제) 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다.
당신은 그들에게 슬픈 진실을 알려줘야 한다. 첫째 줄에는 테스트 케이스의 개수 C가 주어진다.
둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고,
이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다.
X = []
for a in range(int(input())):
X.append(list(map(int,input().split())))
for a in X:
avg = sum(a[1:]) / a[0]
cnt = 0
for score in a[1:]:
if score > avg:
cnt += 1
rate = cnt/a[0] * 100
print(f'{rate:.3f}%')
이번 문제는 심화 문제인 것 같다....
일단 for 문을 통해서 int(input())을 이용하여 입력된 값까지 반복하도록 하였고,
X에 값을 입력하면 list를 저장하도록 만들었다.
그 후 for 문을 다시 만들어 X 값만큼 반복하고,
avg를 a 1번째 배열부터 끝까지 다 더하고 0번째 있는 배열을 나눈는 것으로 만들었다.
그 후 cnt를 0 으로 선언하여 초기화를 시켰고, score를 만들고 반복문으로 만들었다.
그리고 if 문을 통해 score가 avg보다 크면 cnt에 1을 증감한다.
마지막으로 rate 변수를 선언하여 cnt에서 a[0]을 나누고, 100을 곱하면 답이 나오게 된다.
print() 문에서 f(소수점 형태)를 선언하고, rate란 값에 소수점 셋째자리까지 출력하도록 만들었다.
이해가 안되시거나 틀린 정보는 댓글로 알려주시면 감사하겠습니다!
728x90
'알고리즘 > 백준 - 파이썬' 카테고리의 다른 글
백준) 4673번 셀프 넘버 문제 (파이썬) (0) | 2022.05.31 |
---|---|
백준) 15596번 정수 N개의 합 문제 (파이썬) (0) | 2022.05.30 |
백준) 8958번 OX퀴즈 문제 (파이썬) (0) | 2022.05.30 |
백준) 1546번 평균 문제 (파이썬) (0) | 2022.05.30 |
백준) 3052번 나머지 문제 (파이썬) (0) | 2022.05.30 |
댓글