백준 4344번 파이썬

iillyy·2021년 3월 11일
0

알고리즘

목록 보기
6/13
post-thumbnail


이번 문제는 점수가 평균이 넘는 학생의 비율을 알아보는 문제입니다.

그래서 우리에게 필요한 것은
1. 각 반의 평균
2. 평균이 넘는 비율
입니다.

1은 점수를 더한 값에서 학생수를 빼는 것이고
2는 for문을 돌려 평균값보다 높은 점수가 나올 때마다 카운트를 올리고
그 수를 학생수로 나누면 됩니다.

insert_data=int(input())   #insert_data는 입력받은 정수값이다

for i in range(insert_data):               #입력받은 정수값만큼 i를 반복한다
    score=list(map(int,input().split()))    #score는 input받은 값을 스페이스로 구분하여 하나의 값들로 넣어준다
    average=sum(score[1:])/score[0]         #학생수는 score[0]에 입력하고 average는 score의 첫번째 입력받은 값부터 마지막 값을 더한 값과 score[0]으로 나눈 값이다
    count=0                                 #평균 값이 나오면 카운트는 0부터 시작한다
    for  j in score[1:]:                    #score리스트에서 평균값을 구하는 동안
        if j > average:                     #평균보다 큰 값이 나온다면
            count+=1                        #카운트를 올려준다
    rate=count/score[0]*100
    print(f'{rate:.3f}%')  

여기서 처음 알았던 건 마지막에 print(f'{rage:.f}%') 였는데
.f은 문자열 포맷 연산자로 소수점 3자리까지 출력하는 것입니다.
문자열 포맷도 나중에 정리해야겠어요.

그럼 오늘도 수고하셨습니다~

1개의 댓글

comment-user-thumbnail
2021년 3월 12일

좋은 풀이 잘 봤습니다. 오늘도 건승하세요^^

답글 달기