【ABC155 C】「Poll」を解く【Python3】

abc155c

「AtCoder」解説一覧へ

文字列Si が書かれたN枚の投票用紙を調べ、書かれた回数が多い文字列を辞書順で全て出力する問題です。

collectionsライブラリのCounter を使用すると、一括で全ての文字列の出現回数を調べることができます。

提出
import collections
n = int(input())
si = []

for i in range(n):
    si.append(input())

ss = collections.Counter(si)
n_ma = max(ss.values())

ans = []
for i in ss.keys():
    if ss[i] == n_ma:
        ans.append(i)

ans.sort()

for i in range(len(ans)):
    print(ans[i])

Counter は辞書型で、キーに要素、値に出現回数が保存されます。

値が一番大きいものを求めて(n_ma = max(ss.values()))、その数字を値に持つキーを辞書順にソートして出力します。

【ABC155】解説記事リスト

「AtCoder」解説一覧に戻る

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です