본문 바로가기
코딩 테스트/Python_백준

[백준/Python] 4344번 평균은 넘겠지 문제

by 모두의 케빈 2023. 3. 28.

■ 4344번 평균은 넘겠지 문제

 

출처: 백준 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))

 

 

댓글