본문 바로가기

Python/통계

[Python/Statistics] 파이썬으로 가중산술평균 구하기

✍ 파이썬으로 기본 통계를 확인하는 함수를 손에 익히기 위해 진행합니다.

 

🚀 해커랭크에 기재된 문제입니다.

 


가중산술평균 <- 클릭하여 가중산술평균에 대해 훑어본 후, 코드를 작성하면 더욱 이해하기 쉽습니다 :)  

 

n = int(input())
nums = [int(x) for x in input().split()]
weight = [int(x) for x in input().split()]

print(round(1.0*sum([nums[i]*weight[i] for i in range(n)])/sum(weight), 1))

 

✍ 변수선언: n은 input될 숫자의 개수, nums는 각 데이터 값, weight가중치

for문: list comprehension 으로 표현식 작성

✍ round 함수 사용하여 반올림 결과 소수 첫째자리까지 print

 

 

n = int(input()) 
nums = list(map(int, input().split())) 
weight = list(map(int, input().split()))

print('{:.1f}'.format(sum([xi * wi for xi, wi in zip(nums, weight)]) / sum(weight)))

 

✍ 위의 코드와 거의 유사하나, format함수를 사용하여 프린트 방식 지정

zip 내장함수동일한 개수로 이루어진 자료형을 묶어 주는 역할! 즉, x리스트(데이터)와 w리스트(가중치) 개수가 동일하니 하나로 묶어줌

✍ 마찬가지로 list comprehension을 사용

✍ format에 sum(분자에 들어갈 값 표현식) / sum(가중치) 로 조건 지정

✍ print할 형식은 '{:.1f}'로 반올림하여 소수첫째자리까지 print!!

 

 

❗ 첫 번째 코드가 직관적이나, zip 내장 함수를 알게 되었으니 두 번째 코드도 간편하게 사용할 수 있을 것 같네요!

 


문제링크:

www.hackerrank.com/challenges/s10-weighted-mean/problem

 

Day 0: Weighted Mean | HackerRank

Compute the weighted mean.

www.hackerrank.com