반응형
1. 문제
https://www.acmicpc.net/problem/2108
수를 처리하는 것은 통계학에서 상당히 중요한 일이다. 통계학에서 N개의 수를 대표하는 기본 통계값에는 다음과 같은 것들이 있다. 단, N은 홀수라고 가정하자.
- 산술평균 : N개의 수들의 합을 N으로 나눈 값
- 중앙값 : N개의 수들을 증가하는 순서로 나열했을 경우 그 중앙에 위치하는 값
- 최빈값 : N개의 수들 중 가장 많이 나타나는 값
- 범위 : N개의 수들 중 최댓값과 최솟값의 차이
N개의 수가 주어졌을 때, 네 가지 기본 통계값을 구하는 프로그램을 작성하시오.
(시간 초과 때문에 왕왕 고생한 이번문제,,,,,)
2. 코드
from collections import Counter
import sys
n = int(input())
l = []
for i in range(n):
l.append(int(sys.stdin.readline()))
l.sort()
cnt = Counter(l).most_common()
print(round(sum(l)/len(l)))
print(l[len(l)//2])
if len(l) > 1:
if cnt[0][1] == cnt[1][1]:
print(cnt[1][0])
else:
print(cnt[0][0])
else:
print(cnt[0][0])
print(l[-1]-l[0])
3. 주요 포인트
1) input()대신 sys.stdin.readline() 사용해서 시간 줄이기
2) 최빈값 구할 때 하나하나 구하면 백퍼센트 시간 초과 뜬다. Counter의 most_common 사용하기,.,,,
728x90
반응형
'백준' 카테고리의 다른 글
[백준] 11650번 - 좌표 정렬하기 (파이썬) (feat. lambda) (0) | 2021.11.08 |
---|---|
[백준] 1463번 - 1로 만들기 (파이썬 코드) (feat. DP) (0) | 2021.11.08 |
[백준] 10989번 - 수 정렬하기 3 (파이썬) (feat. 정렬하지 않고 정렬하기,,?) (0) | 2021.11.07 |
[백준] 2751번 - 수 정렬하기 2 (파이썬 코드) (feat. sys.stdin / sys.stdout) (0) | 2021.11.07 |
[백준] 2581번 - 소수 / 파이썬 코드 (0) | 2021.11.07 |