728x90
문제출처: https://www.acmicpc.net/problem/4344
1. 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
c = int(input())
for i in range(c):
num = list(map(int,input().split()))
avg = sum(num[1:])/num[0] #num[0]은 학생수 그 이후부터는 점수
cnt = 0
for score in num[1:]:
if score>avg:
cnt += 1
rate = cnt/num[0]*100
print(f'{rate:.3f}%')
|
cs |
2. 해결과정
for문 상단에서 테스트 케이스 수로 입력받은 만큼 for문 반복 for문 아래에서 학생수와 점수를 num 리스트에 저장
첫번째 요소는 학생수이고, 그 이후 요소는 점수이다.
평균을 구한 후에 평균을 넘는 학생을 cnt해주고, 비율을 구해서 출력해주면 된다.
출력문을 작성시 소수 3째자리까지 표시이기 때문에 f-string을 이용했다.
3. 느낀점
다른 것은 어렵지 않았지만 출력할때 소수 자리 수를 제한하는 것을 찾아서 풀었던 문제였다.
f-string 중괄호 { } 안에서 : 구분자를 이용하고 : 구분자 오른편에. 자릿수 f를 써준다.
자릿수 뒤에 붙는 f는 실수의 f를 의미한다.
728x90
'공부 자료 > 알고리즘' 카테고리의 다른 글
(Python/파이썬) 백준 1193번 - 분수찾기 (0) | 2021.08.01 |
---|---|
(Python/파이썬) 백준 11651번 - 좌표 정렬하기2 (0) | 2021.07.31 |
(Python/파이썬) 백준 11729번 - 하노이 탑 이동 순서 (0) | 2021.07.30 |
(Python/파이썬) 백준 5622번 - 다이얼 (0) | 2021.07.30 |
(Python/파이썬) 백준 1316번 - 그룹 단어 체커 (0) | 2021.07.30 |