■ 4344번 평균은 넘겠지 문제
■ 코드 풀이
제가 생각했을 때, 이 문제의 핵심은 list 자료형의 element-wise 대소 관계 비교와 출력 형식을 지정한 print인 것 같습니다. 저 같은 경우에는 students라는 list에 학생의 수와 점수를 모두 받은 다음에 가장 첫 번째 index인 학생의 수를 pop 메서드를 활용해 리스트에서 추출했습니다. 그리고 이를 활용해 mean을 구했습니다.
리스트 내 개별 원소의 대소 관계 비교는 map과 lambda 함수를 활용했는데요. for 문을 이용하여 풀어도 되지만, 코드가 지저분해져서 저는 보통 이런 경우에 lambda 함수를 즐겨 사용합니다.
소수점 넷째 자리에서 반올림하여 출력하기 위한 형식은 아래 코드를 참고해 주세요.
import sys
N = int(sys.stdin.readline())
for i in range(N):
students = list(map(int, sys.stdin.readline().split()))
num_of_students = students.pop(0)
mean = sum(students)/num_of_students
mean_over_students = sum(list(map(lambda x : x>mean, students)))
ratio = (mean_over_students / num_of_students) * 100
print("{:.3f}%".format(ratio))
'코딩 테스트 > Python_백준' 카테고리의 다른 글
[백준/Python] 1316번 그룹 단어 체커 문제 (0) | 2023.03.30 |
---|---|
[백준/Python] 2941번 크로아티아 알파벳 문제 (0) | 2023.03.29 |
[백준/Python] 1157번 단어 공부 문제 (0) | 2023.03.27 |
[백준/Python] 10988번 팰린드롬인지 확인하기 문제 (0) | 2023.03.26 |
[백준/Python] 10812번 바구니 순서 바꾸기 (0) | 2023.03.25 |
댓글