백준 2108번 통계학
코드 풀이
- 최빈값 : 중복일 경우를 고려해
max_idx
라는 리스트 변수를 만들고, 최빈(max_count
)을 나타내는 인덱스를 max_idx에 추가
합니다. 만약 값이 중복이라면 max_idx
에는 2개 이상의 값이 추가되어 있을 것입니다. 이를 오름차순 정렬하고, 두 번째 값(인덱스: 1)을 출력합니다.
import sys
n = int(sys.stdin.readline())
count = [0] * (8001)
num = [int(sys.stdin.readline()) for _ in range(n)]
for i in num:
count[i+4000] += 1
print(int(round(sum(num) / n, 0)))
num.sort()
print(num[int(n/2)])
max_count = max(count)
max_idx = []
for i in range(len(count)):
if count[i] == max_count:
max_idx.append(i)
max_idx.sort()
if len(max_idx) == 1:
print(max_idx[0] - 4000)
else:
print(max_idx[1] - 4000)
print(max(num) - min(num))