import statistics, sys
n = int(input())
lst = [int(sys.stdin.readline()) for _ in range(n)]
print(round(statistics.mean(lst)))
print(statistics.median(lst))
mode = statistics.multimode(lst)
if len(mode) > 1:
mode.sort()
print(mode[1])
else:
print(mode[0])
print(max(lst) - min(lst))
다른 풀이들 찾아보니까 statistics 모듈을 사용한 풀이가 별로 보이지 않았다.
공부도 할 겸 스스로 코드를 짜서 푸는 게 나았을까?
차례대로 산술평균, 중앙값, 최빈값, 범위를 구하면 되는 문제였는데 다른 것들은 다 쉽게 풀 수 있는 것들이었는데 최빈값은 조금 생각을 해야 했다.
조건이 최빈값이 여러 개 있을 경우에는 두 번째로 작은 최빈값을 출력하는 거라서 statistics의 mode 함수를 사용할 수는 없어서 multimode를 사용했다.
mutimode는 최빈값들의 리스트를 반환한다.
그래서 일단 리스트 길이를 보고 2 이상일 경우에는 최빈값이 여러 개 존재한다는 뜻이니까 정렬 후에 인덱스 1에 있는 값이 두 번째로 작은 값이니 그걸 출력하는 식으로 풀이했다.
'알고리즘' 카테고리의 다른 글
[백준] 1181 단어 정렬 - 파이썬 (0) | 2022.04.09 |
---|---|
[백준] 11650 좌표 정렬하기 - 파이썬 (0) | 2022.04.07 |
[백준] 10989 수 정렬하기 3 - 파이썬 (카운팅 정렬) (0) | 2022.04.05 |
[백준] 2751 수 정렬하기 2 - 파이썬 / 퀵 정렬 (0) | 2022.04.05 |
[백준] 1436 영화감독 숌 - 파이썬 (0) | 2022.04.04 |