문제 링크
https://www.acmicpc.net/problem/4344
나의 코드 (Python)
n = int(input()) # 문제개수입력
for _ in range(n): # 문제만큼 반복
arr = list(map(int, input().split())) # 테스트케이스 입력
student = arr[0] # 테스트케이스 맨 앞은 학생의 수
average = sum(arr[1:]) / student # 학생들의 점수의 평균을 구함
res = 0 # 평균이상 학생의 비율을 구할 변수
for chk in arr[1:]: # 각 점수를 비교
if chk > average: # 평균보다 높은 경우 카운팅
res += 1
print("%.3f" % (res / arr[0] * 100) + "%") # 결과 출력
이 문제는 배열을 슬라이싱 하는 방법을 아는 것이 중요합니다.
arr[0]은 배열의 첫 번째 원소를 선택하는 것이고 arr[1:]은 두 번째 원소부터 나머지까지를 의미합니다.
이를 통해서 각 테스트케이스에 학생의 수와 점수를 나누어 사용할 수 있습니다.
'코딩공부 > 백준 (python)' 카테고리의 다른 글
[백준 4673] 셀프 넘버 (Python) (0) | 2022.03.01 |
---|---|
[백준 15596] 정수 N개의 합 (Python) (0) | 2022.03.01 |
[백준 8958] OX퀴즈 (Python) (0) | 2022.02.22 |
[백준 1546] 평균 (Python) (0) | 2022.02.22 |
[백준 3052] 나머지 (Python) (0) | 2022.02.22 |
댓글