간단하게 풀어보려다가
대박 많이 틀렸다
<정답코드>
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 |