https://www.acmicpc.net/problem/4344
c = int(input()) #맨 위에 줄 입력받음
for i in range(c):
inputs = list(map(int,input().split())) #한줄씩 입력받음
avg = sum(inputs[1:])/inputs[0] #평균
over_avg = 0 #평균 넘는 사람
for score in inputs[1:]:
if score> avg:
over_avg += 1
rate = over_avg/inputs[0] * 100
print(f'{rate:.3f}%') #소수점 3자리까지
말로 풀어서 풀이
처음에 입력값은 몇 번 테스트 할 건지 이므로 그 개수만큼 for문을 돌린다.
for문을 돌면서 한줄씩 입력을 받는다
두번째 입력 부터, 첫번째는 몇 명인지, 두번째부터 끝까지는 각각 몇 점인지를 입력받는데
이것을 list에 넣어서 입력을 받는다.
평균을 구하려면 두번째 인덱스부터 끝까지 sum을 하고 맨 첫번째 인덱스로 나눠줘야한다.
두번째 인덱스부터 확인을 하면서 avg보다 높은 사람들이 있으면 over_avg를 하나씩 추가한다.
비율은 평균 넘는 사람 / 총 사람 * 100을 해준다.
f string을 사용하여 출력해준다.
정리
1. 입력값을 list로 입력받고 두번째부터 끝까지 모두 더한 값을 1번째 인덱스로 나눈다.
평균 = ( 점수들의 총합/ 사람 수)
2. list를 전부 돌면서 평균보다 높은 사람이 나타나면 over_avg(평균 넘는 사람) +1을 해준다
3. 비율을 구한다.
728x90
'알고리즘 > 백준 문제풀이' 카테고리의 다른 글
[백준] 1157 단어공부 파이썬 풀이 (0) | 2021.06.16 |
---|---|
[백준] 4673 셀프 넘버 파이썬 풀이 (0) | 2021.06.15 |
[백준] 1110 더하기 사이클 파이썬 풀이 (1) | 2021.06.15 |
[백준] 2884 알람시계 파이썬 풀이 (0) | 2021.06.15 |
[백준] 백준 문제 제출할 때 어떻게 하는지 모르는 사람~! input()이 대체 뭔데! 입력값을 어떻게 테스트 하는데! 백준 제출 하는 법 (0) | 2021.06.15 |