[BOJ/백준-Python]4344번 - 평균은 넘겠지

4344번 - 평균은 넘겠지

문제

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

입력

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

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

출력

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

예제 입력 1

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

예제 출력 1

40.000%
57.143%
33.333%
66.667%
55.556%

해결할 방법을 생각해보자.💡

처음에 테스트 케이스 수 C를 받아준다.

C = int(input(())

그리고 C의 크기 만큼 입력을 반복 할 것이기 때문에 반복문을 C의 길이만큼 수행해준다.

for case in range(C):

입력 예시를 보면 한 줄에 여러 개의 정수를 공백을 두고 받는다. 이럴 경우 map 함수를 사용해서 정수를 입력받아준다. 그리고 이것들을 배열(리스트)형태로 만들어 준다.

	scores= list(map(int, input().split()))

여기서 배열 안의 값들을 더해주는 sum() 함수를 사용해 모두 더해주는데 배열의 첫 원소는 학생 수를 의미하기 때문에 인덱싱(0)을 사용해서 빼준다.

	total = sum(scores) - scores[0]

그리고 더한 값을 사용해 평균을 구해준다. 더한 값은 학생들의 총 점수이고(total) 아까 받은 배열의 첫 원소 값은 학생 수라고 했다. 따라서 총 점수를 학생 수로 나눠주면 되겠다.

	avg = (total/scores[0])

이제 학생들 중 평균 점수보다 높은 점수인 학생의 수를 세줘야 한다. count를 0으로 저장해 학생수를 더해줄 것이다.

	count = 0

그리고 학생 수 만큼 반복해 평균 점수보다 큰 값인지 비교해준다. 학생 수 만큼 반복문을 사용하기 때문에 인덱스 값을 1 추가해서 진행해준다. 비교해주고 평균(avg) 보다 크다면 count에 1을 추가하고 아니면 지나가는 형식으로 진행해준다.(continue)

	for i in range(scores[0]):
        if scores[i+1] > avg:
            count += 1
        else:
            continue

그러면 이제 평균을 넘는 학생 수가 count에 저장되어있을 것이다. f-string을 사용해서 소수점 세번째 자리 수 까지 출력해주면 문제를 해결할 수 있다.

	print(f"{count/(scores[0])*100:.3f}%")

코드💻

import sys
input = sys.stdin.readline

C = int(input())
for case in range(C):
    scores = list(map(int, input().split()))
    total = sum(scores) - scores[0]
    avg = (total/scores[0])
    count = 0
    for i in range(scores[0]):
        if scores[i+1] > avg:
            count += 1
        else:
            continue
    print(f"{count/(scores[0])*100:.3f}%")

해결 로그

문제 푼 날짜 체크
2022-05-17
   
   
   
   

2022

[web]jQuery 복습 3

1 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]jQuery 복습 2

13 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]jQuery 복습 1

14 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]JavaScript 정리4

5 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]JavaScript 정리3

10 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]JavaScript 정리2

7 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]JavaScript 정리1

8 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]CSS 기초 정리

11 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]HTML 기초 정리

8 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[Pandas]pandas 연습

3 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

맨 위로 이동 ↑

2021

[Python기초]module

1 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

맨 위로 이동 ↑