[白俊-2188]統計学


質問する


リンク

コード#コード#

import sys
from collections import Counter
input = sys.stdin.readline
n = int(input())

value = []
for _ in range(n) :
    value.append(int(input()))
value.sort()

# 산술평균
sAvg = round(sum(value) / n)
print(sAvg)

# 중앙값
mid = (n-1) // 2
print(value[mid])

# 최빈값
if len(value) == 1 :
    print(value[0])
else :
    cnt = Counter(value)
    if len(cnt) == 1 :
        print(cnt)
        print(max(cnt))
    else :
        cnt = cnt.most_common(2)
        print(cnt)
        if cnt[0][1] > cnt[1][1] :
            print(cnt[0][0])
        elif cnt[0][1] == cnt[1][1] :
            print(cnt[1][0])
        
#범위
print(max(value) - min(value))

に答える


算術平均値、中央値、範囲は解きやすいが、最貧値を求めるのは難しい.
最初は並びです.私はcount(検索する数字)で問題を解いたが、タイムアウトしたのでcounterを使った.
(2108問の問題を探します.for文でcountを使用すると、for文も配列で数値を検索し、countもループで検索するのでタイムアウトします.リンク)
入力値が
  • の場合、出力は
  • である.
  • 入力値が複数の場合、カウンタを使用して最空き値を検索します.
    2-1. リストに値がある場合、出力
  • 」リストに複数の値がある場合、最大2つの値しか保存できません.
    3-1. 数量が異なる場合は、最初の値を出力します.
    3-2. 同じ数の場合、2番目の値
  • が出力される.