이전 풀이
https://dmaolon00.tistory.com/11
c = int(input())
for i in range(c):
score = list(map(int, input().split(' ')))
avg = ratio = 0
for j in range(1, score[0] + 1):
avg += score[j]
avg = avg / score[0]
for j in range(1, score[0] + 1):
if score[j] > avg:
ratio += 1
ratio = round((ratio / score[0]) * 100, 3)
print("{:.3f}".format(ratio) + "%")
모두 list형태로 입력 받고, 맨 첫 인덱스 값은 학생 수이기 때문에 인덱스 1부터 for문이 돌 수 있도록 하며 평균을 계산해준 후, 비율을 구해주었다.
(이전 풀이에서는 리스트 길이에서 1을 빼어 돌려주었다)
반올림은 round( ) 를 이용하여 해주었으나 40.000%로 출력되어야 하지만, 40.0%로 출력되는 문제점이 있었다. 따라서 이 문제는 format을 해주어 해결해주었다.
이전 풀이를 보면서 format 메소드 말고 % 연산자의 이용도 있었구나! 했다. 또 언더스코어를 이용하는 것, 리스트에서 [1:]처럼 슬라이싱을 이용하는 점 또한 다시 알게 되었다.
반응형