Python3 코드
case_num=int(input())
sum=0
count=0
for i in range(case_num):
student_num = list(map(int,input().split()))
for j in range(1,student_num[0]+1):
sum += student_num[j]
avg = sum/student_num[0]
for k in range(1, student_num[0]+1):
if(avg < student_num[k]):
count +=1
print("{0:.3f}%".format((count/student_num[0])*100))
sum, avg, count=0,0,0
내용 풀이
학생 수와 점수를 입력받아서 반에서 평균을 넘는 학생들의 비율을 구하는 문제이다.
처음에 반의 갯수를 입력받는다.
한 줄씩 입력하는데 첫번 째는 한 반의 학생수를 두 번재 부터는 학생들의 점수를 입력한다.
Python 코드 풀이
1. 반들의 갯수를 case_num에 넣는다.
case_num=int(input())
sum=0
count=0
sum, count를 0으로 초기화 시킨다.
2. 반들의 갯수만큼 for문을 반복
for _ in range(case_num):
3. 두 번째 줄 입력 부터는 list화
student_num = list(map(int,input().split()))
for i in range(1,student_num[0]+1):
sum += student_num[i]
avg = sum/student_num[0]
map()함수는 띄어쓰기 기준으로 입력받는 것을 int() 함수에 넣어서 int형태로 만든다음 list화 한다.
for문에 1부터 입력받은 학생수(student_num)+1 을 range함수에 넣는다.
range(a,b)는 a<= x < b 를 뜻한다.
각 학생 점수를 sum에 계속 더한다.
학생들의 총합 sum을 학생 수만큼 나눠준다. 그 값은 평균(avg)이다.
4. 학생의 성적과 평균값을 비교
for k in range(1, student_num[0]+1):
if(avg < student_num[k]):
count +=1
평균값보다 크면 count를 1 증가시킨다.
5.총 학생수와 평균보다 큰 학생수의 비율
print("{0:.3f}%".format((count/student_num[0])*100))
sum, avg, count=0,0,0
문자열 중에 소숫점 3자리 까지만 나오도록 "{0:.3f}"를 하고 .format()함수를 이용해서 {0}에 값을 넣어준다.
출력값에 %를 넣어야 하니깐 {}뒤에 %를 붙혀야 한다.
728x90
'알고리즘 > 백준알고리즘' 카테고리의 다른 글
[백준 알고리즘/Python3]14681 사분면 고르기 (0) | 2021.07.20 |
---|---|
[백준 알고리즘/Python3] 2753 윤년 (0) | 2021.07.20 |
[백준 알고리즘/Python3] 9498 시험 성적 (0) | 2021.07.20 |
[백준 알고리즘/Python3] 1330번 두 수 비교하기 (0) | 2021.07.20 |
[백준 알고리즘/Python3] 1003, 피보나치 함수 (0) | 2021.07.05 |