간단하게 풀어보려다가
대박 많이 틀렸다
<정답코드>
import sys
c=int(sys.stdin.readline())
for i in range(c):
    data=list(map(int,input().split()))
    theNumberofStudent=data[0]
    scores=data[1:]
    cnt=0
    avg=sum(scores)/theNumberofStudent
    for nums in scores: #data 아니고 scores!!
        if nums>avg:
            cnt+=1
    ratio=cnt/theNumberofStudent*100
    print('%0.3f%%' %ratio)

for nums in scores에
scores를 넣어서
성적들만으로 평균을 초과하는 학생수가 계산되어야 하는데
data를 넣어버려서
학생수(thenumberofStudent)까지 평균을 초과하는 학생수를 살피는 범위에 잘못 넣어버렸다
<배운점>
1. 리스트 슬라이싱할 때는 슬라이싱을 담을 변수를 따로 만들자
sum(data[1:])이렇게 넣지 말고!
scores=data[1:] 이렇게!
2. 포함되어야 할 자료가 어디부터 어디까지인지
대충대충하지 말고 꼼꼼히 보자.
하나라도 잘못들어가면 출력 틀린다!
'CS > Python' 카테고리의 다른 글
| 백준 1476번 파이썬 python 문제풀이 브루드포스 알고리즘 (0) | 2023.02.22 | 
|---|---|
| 백준 10773번 파이썬 python 스택 풀이 (0) | 2023.02.12 | 
| 파이썬 sys.stdin.readline 사용법 python (0) | 2023.02.10 | 
| 자료구조_스택 파이썬 : 보통의 취준생을 위한 코딩 테스트 with 파이썬 7장 (4) | 2023.01.31 | 
| 알고리즘_ ArrayList(파이썬) - 보통의 취준생을 위한 코딩 테스트 with 파이썬 (0) | 2023.01.31 |