반응형
[ Contents ]
1. 문제 (링크 참조)
2. 문제 풀이
N개의 수열의 '산술평균', '중앙값', '최빈값', '범위'를 구하는 문제입니다.
2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학
3. 코드
import sys
from collections import Counter
input = sys.stdin.readline
N = int(input())
numlist = []
for i in range(N):
numlist.append(int(input()))
print(int(round(sum(numlist)/N, 0))) #산술평균
numlist.sort()
print(numlist[N//2]) #중앙값
count = Counter(numlist).most_common()
if len(count) > 1 and count[0][1] == count[1][1]: #최빈값이 2개 이상일 때는 2번째로 작은 값 출력
print(count[1][0]) #최빈값
else:
print(count[0][0])
print(max(numlist) - min(numlist)) #범위
단순히 sort()만 해도 시간초과 나진 않았습니다.
산술평균은 round 함수 써서 첫째 자리에서 반올림합니다.
중앙값은 정렬한 후에 numlist[N//2]를 출력합니다. N이 홀수이므로 가운데 항목을 출력하면 됩니다.
최빈값은 Counter 객체를 이용해서 구해줍니다. 2개 이상일 때는 '2번째로 작은 값'을 출력해야 합니다.
범위는 max() - min()으로 구해줍니다.
반응형
'Algorithm' 카테고리의 다른 글
[Brute Force] 백준 18111 마인크래프트 - Python (0) | 2022.02.11 |
---|---|
[구현/수학] 백준 2869 달팽이는 올라가고 싶다 - Python (0) | 2022.02.11 |
[정렬/탐색] 백준 2805 나무 자르기 - Python (0) | 2022.02.10 |
[정렬/탐색] 백준 1654 랜선 자르기 - Python (0) | 2022.02.10 |
[자료구조/큐] 백준 1966 프린터 큐 - Python (0) | 2022.02.10 |
댓글