본문 바로가기

CS/Python

백준 4344번 파이썬

간단하게 풀어보려다가

대박 많이 틀렸다

 

<정답코드>

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. 포함되어야 할 자료가 어디부터 어디까지인지 

대충대충하지 말고 꼼꼼히 보자.

하나라도 잘못들어가면 출력 틀린다!