본문 바로가기

백준

[백준] 평균은 넘겠지 - 4344 (feat. python 소수점 자리 수 출력 - format)

반응형

1. 문제

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

 

첫째 줄에는 테스트 케이스의 개수 C가 주어진다.

둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다.

 

각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다.

 

 

2. 코드

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

n = int(input())
score = []

for i in range(n):
    score = list(map(int, input().split()))
    average = (sum(score)-score[0])/score[0]
    count = 0
    for j in range(score[0]):
        if score[j+1] > average:
            count+=1
    rate = format(count/score[0]*100, ".3f")
    print(rate, "%", sep = '')

 

 

 

3. 알고리즘

1) 케이스 수 입력받기

2) 케이스만큼 반복

     2-1) 학생수와 점수 입력받아 score 배열에 저장. score[0]에는 학생 수가 들어있다.

     2-2) 평균구하기. 이 때, score[0]은 학생수임을 주의해서 계산.

     2-3) 평균 넘는 학생 수 count에 구하기

     2-4) count를 format해주기.

     2-5) 출력

* format([변수], [포맷형태])

** ".3f"로 해주면 세번째자리까지 남기겠다.

 

 

4. format 참고 사이트. (round 관한 내용도 있음)

https://seopark.tistory.com/24

 

[Python] 소수점 자리 수 출력 - round(), format()

시험성적 평균과 등급 구하기 평균은 소수점 2번째 자리까지만 (3번째 자리에서 반올림) 출력하며 등급은 평균 90점 이상일 경우 A 90점 미만 80점 이상일 경우 B 80점 미만 70점 이

seopark.tistory.com

 

728x90
반응형