파이썬 문제풀이

[백준 파이썬] 4344 평균은 넘겠지

냄비짱 2023. 9. 13. 03:08
728x90

📌문제 출처

백준 단계별 문제풀이 - 1차원 배열
https://www.acmicpc.net/problem/4344

 

4344번: 평균은 넘겠지

각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다. 정답과 출력값의 절대/상대 오차는 10-3이하이면 정답이다.

www.acmicpc.net

❓ 문제

📗 문제 설명

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

📗 입출력

  • 입력
    • 첫째 줄에는 테스트 케이스의 개수 C가 주어진다.
    • 둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다.
  • 출력
    • 각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다.

❗ 풀이

- formatting 활용 소수점 나타내기

📗 풀이 코드

for _ in range(int(input())) :
    scores = list(map(int, input().split()))
    student = scores.pop(0)
    mean = sum(scores)/student
    avgcnt = 0
    for sco in scores :
        if sco > mean :
            avgcnt += 1

    print(f'{round((100*avgcnt/student),4):.3f}%')

📗 코드 해설

  • 입력값에서 학생 수만 pop()으로 추출 후 점수의 평균을 구한다.
  • 학생 점수를 하나씩 확인하며 평균보다 높은 학생 수를 구한다.
  • formatting을 활용하여 비율을 원하는 소수점 자리까지 나타낸다.
    • round는 유효숫자까지만 소수점 표현이 가능하나 formatting은 내가 정한만큼 표현한다.