2108번: 통계학 [Python]
일단 되게 하자
import sys
n = int(sys.stdin.readline())
v = []
d = {}
sum = 0
for i in range(n):
tmp = int(sys.stdin.readline())
sum += tmp
v.append(tmp)
if str(tmp) in d:
d[str(tmp)] += 1
else:
d[str(tmp)] = 1
v = sorted(v)
sortedDic = sorted(d.items(), key=lambda x: x[1], reverse=True)
tmp = sortedDic[0][1]
mostFreq = []
for i in sortedDic:
if tmp == i[1]:
mostFreq.append(int(i[0]))
else:
break
mostFreq = sorted(mostFreq)
print(round(sum / n))
print(v[n // 2])
if len(mostFreq) > 1:
print(mostFreq[1])
else:
print(mostFreq[0])
print(v[n - 1] - v[0])
빈도수 출력이 관건이었다. 빈도수는 딕셔너리를 이용해 키 벨류 형식으로 저장했고, 벨류를 기준으로 정렬한 다음, 최대 빈도의 키값만 따로 리스트로 구성해서, 출력했다.
Author And Source
이 문제에 관하여(2108번: 통계학 [Python]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dongkan9/2108번-통계학-Python저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)