250x250
Notice
Recent Posts
Recent Comments
Link
멋쟁이v의 개발일지
[백준 4344번] 평균은 넘겠지(파이썬) 본문
728x90
320x100
문제
대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다.
입력
첫째 줄에는 테스트 케이스의 개수 C가 주어진다.
둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다.
출력
각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다.
예제 입력
5
5 50 50 70 80 100
7 100 95 90 80 70 60 50
3 70 90 80
3 70 90 81
9 100 99 98 97 96 95 94 93 91
예제 출력
40.000%
57.143%
33.333%
66.667%
55.556%
풀이
이 문제는 각 케이스 마다 평균을 구해서 그 평균을 넘는 학생들의 비율을 구해야 합니다.
예제를 보면
5 50 50 70 80 100
학생 5명의 평균을 구하면 70이네요.
평균 70보다 높은 점수를 받은 학생은 2명이구요.
5명 중 2명의 비율은 40%입니다. 정답 : 40%
코드를 순서대로 작성한다면
1. 각 케이스 별 학생 수와 점수를 입력
2. 케이스의 두번 째부터 점수가 시작되니, 두번 째부터 다 더한 후 학생 수로 나눈 평균을 저장
3. 평균을 각 학생들의 점수와 비교하고 높은 점수를 받은 학생 수를 저장
4. 저장된 수를 전체 학생 수의 비율을 출력(소수점 3째자리까지 반올림)
작성 코드
N = int(input()) for _ in range(N): A = list(map(int, input().split())) # 학생 수와 점수를 입력 AVG = sum(A[1:]) / A[0] # 입력 2번째 부터 더한 후 1번째 학생 수로 나눈 평균 cnt = 0 for i in A[1:]: # 각 점수를 하나씩 평균과 비교 if i > AVG: cnt += 1 # 평균보다 큰 점수를 카운트 +1 answer = cnt / A[0] * 100 # 비율을 구한 후 변수에 저장 print('%.3f' %answer + '%') # 소수점 셋째자리까지 반올림하고 %를 붙여서 출력
728x90
320x100
'0년차 > 알고리즘(1차원 배열)' 카테고리의 다른 글
[백준 8958번] OX퀴즈(파이썬) (0) | 2022.11.28 |
---|---|
[백준 5597번] 과제 안 내신 분(파이썬) (0) | 2022.11.28 |
[백준 1546번] 평균(파이썬) (1) | 2022.11.27 |
[백준 3052번] 나머지(파이썬) (1) | 2022.11.27 |
Comments