코드
import sys
input = sys.stdin.readline
def findFreq(freq):
frl = []
fr = 0
for i in range(8001):
if freq[i] == fr:
frl.append(i-4000)
elif freq[i] > fr:
frl.clear()
frl.append(i-4000)
fr = freq[i]
frl.sort()
if len(frl) == 1:
return frl[0]
elif len(frl) > 1:
return frl[1]
n = int(input())
freq = [0]*8001
arr = []
for _ in range(n):
num = int(input())
arr.append(num)
freq[num+4000] += 1
arr.sort()
print(round(sum(arr) / n))
print(arr[n//2])
print(findFreq(freq))
print(arr[-1] - arr[0])
결과
풀이 방법
- 간단한 통계문제이다. 신경써야 하는 부분은
최빈값
을 구하는 부분이다. 이중 반복문을 사용하지만 않으면 될 것이다.
- 수의 절댓값이 최대 4000이므로 8001개의 인덱스를 갖는 배열을 사용하여
배열[수] = 빈도
형태로 빈도를 저장하였다.