본문 바로가기
🔅코딩테스트 공부🔅/❗백준

[백준] 4344번 평균은 넘겠지(with python)

by 윤무무 2023. 1. 18.

https://www.acmicpc.net/problem/4344

 

4344번: 평균은 넘겠지

대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다.

www.acmicpc.net

 

1. 내가 작성한 코드
c = int(input()) #테스트 케이스 C의 개수

for i in range(c):
  arr = list(map(int, input().split())) #테스트케이스 입력
  score = arr[1:] #과목 수를 나타내는 인덱스 제외하고 SCORE 리스트에 넣음
  result = []
  avg = sum(score)/arr[0] #평균 구하기
  for j in arr[1:]: #총 평균보다 큰 학생 찾기
      if j > avg:
        result.append(j)
  score = (len(result)/(arr[0])*100)
  print("{:.3f}".format(score)+"%")

 

2. 혼자 수정해보기
c = int(input())

for i in range(c):
  arr = list(map(int, input().split()))
  count = 0
  avg = sum(arr[1:])/arr[0]
  for j in arr[1:]:
      if j > avg:
        count +=1
  score = (count/(arr[0])*100)
  print("{:.3f}".format(score)+"%")

1) score 리스트를 선언하지 않고, 바로 평균 계산을 함

2) result 리스트를 선언하지 않고, count 변수로 바꿈

 

=> format 함수들 다시 공부하기

 

3. 오류

TypeError: 'int' object is not callable 라는 오류가 지속적으로 발생했는데, 이건 예약어인 sum을 변수로 할당해서 그렇다

 

예약어를 변수로 선언하지 않도록 주으ㅣㅎㅏㄱㅣ

댓글