문제
산술평균, 최빈값, 중앙값, 범위 출력하기
Reference
https://jiwon-coding.tistory.com/8 ([백준] 2108번 통계학 파이썬(python))
풀이
아니 R이랑 엑셀 냅두고 왜… 걔네는 장식인가
여기서 얘기하는 산술평균이 우리가 일반적으로 얘기하는 평균이다. 평균은 산술/기하/조화평균이 있는데 이건 나중에 얘기하도록 하자… 아무튼, 그래서 4가지 요소를 어떻게 구하느냐… 평균은 일반적인 그 평균이 ‘맞다’. 중앙값은 말 그대로 정렬된 배열의 가운데에 있는 값이고, 최빈값은 배열에서 제일 많은 값(단, 여러개일 경우 두번째로 작은거), 범위는 최대-최소 하면 된다.
근데 여기서 최빈값이 끝판왕임.
import sys
from collections import Counter
N = int(sys.stdin.readline())
arr = []
for _ in range(N):
arr.append(int(sys.stdin.readline()))
average = round(sum(arr)/N)
print(average)
# Average
arr.sort()
median = arr[N // 2]
print(median)
# Median
count_array = Counter(arr).most_common()
if len(count_array) > 1 and count_array[0][1] == count_array[1][1]:
print(count_array[1][0])
else:
print(count_array[0][0])
range = max(arr) - min(arr)
print(range)
저 콜렉션 저거는 더 찾아보고 알려드림. 한가지 확실한건 저게 있어서 그나마 코드가 저렇게 짧은겁니다. ㄹㅇ임.
- 평균: 다 더해서 배열 길이로 나눈다
- 중앙값: 배열을 정렬한 다음 배열 길이 // 2의 값을 가져온다. (길이가 5면 2, 7이면 3 이런 식. 파이썬은 0부터 센다)
- 최빈값: 어레이를 하나 만들건데 배열 안에 들어있는 값과 몇개인지가 들어가게 된다. 이 배열을 비교해서 옆에 있는 애랑 개수가 같으면 두번째 놈을 출력한다.
- 범위: 최댓값-최솟값(개심플)
엥? 어떻게 나오길래 저걸로 끝임?
[(-2, 2), (-1, 2), (-3, 1)]
이렇게 나온다. 오른쪽 값이 개수인데, 그게 같은 것끼리 정렬하고 큰 그림을 그리는 식이라 저걸로 처리된 것.
결론: 엑셀 쓰자 결론 에반데
Reply