<aside> 💬 lv0, 정렬

평균 점수 카운팅

문제 설명

반별 점수가 [국, 영, 수]로 인원만큼 주어집니다. 평균 점수가 80점 이상인 인원이 얼마나 되는지 카운팅하는 solution함수를 완성해주세요.


제한 사항


입출력 예

입력 출력
[[98, 92, 85], [95, 32, 51], [98, 98, 51]] 2
[[92, 85, 97], [30, 21, 60], [90, 99, 98], [0, 0, 0], [81, 80, 88, 83]] 3

입출력 설명

[[98, 92, 85], [95, 32, 51], [98, 98, 51]]에서 첫번째 값인 98은 국어, 92는 영어, 85는 수학 점수입니다. 이를 모두 더하면 275이고 이를 3으로 나누면 91.66이 나오게 됩니다. 이는 80점보다 높은 점수이고 이렇게 나머지 값을 모두 연산하면 총 2개의 값이 80점보다 높은 값인 것을 알 수 있습니다. 따라서 2를 반환합니다.

</aside>

😺 풀이 1. sum 함수

def solution(data):
    return sum(1 for row in data if sum(row[:3]) >= 180)  **#1 sum #2 리스트 컴프리헨션**

단계별 풀이 전략

  1. sum 함수

    입력된 데이터에서 각 학생의 점수 합을 계산하고, 그 값이 180 이상인 경우를 카운트하여 반환합니다.

  2. 리스트 컴프리헨션

    각 학생의 점수 합이 180 이상인 경우를 카운트합니다.

알아둬야 할 개념

sum 함수

풀이 2. map() 함수

def solution(data):
    return len(list(filter(lambda x: x > 240, map(sum,data))))

단계별 풀이 전략

  1. 입력된 데이터에서 각 학생의 점수 합을 계산한 후, 그 값이 240 이상인 경우를 필터링하여 그 개수를 반환합니다.

  2. map() 함수 & filter() 함수

    각 학생의 점수 합을 계산하고, filter() 함수를 사용하여 그 값이 240 이상인 경우를 필터링합니다.

알아둬야 할 개념

map 함수