AtCoder ABC 008 B – 投票 Python解説
投票
とある組織で、リーダーを選ぶ選挙が行われた。
AtCoder Beginner Contest 008
組織は N 人の構成員で構成されており、各人は最もリーダーにふさわしい人物の名前を書いた。
リーダーは、得票数が最も多い人物が選ばれることになっている。
得票数が最も多い人物の名前を出力せよ。得票数が最も多い人物が複数いる場合は、そのうちどの名前を出力してもよい。
人物名とそれぞれの得票数を同時に保持したいので連想配列を使います。
n = int(input())
dic = {}
for i in range(n):
a = input()
if a in dic: # *1
dic[a] += 1
else:
dic[a] = 1
cnt = 0
ans = ""
for key, value in dic.items(): # *2
if value >= cnt:
cnt = value
ans = key
print(ans)
(*1)人物名を標準入力で受け取ったら、dic内に名前があるか確認し、
すでに名前があれば票数+1、まだ名前がなければ票数を1にしています。
(*2)人物名と得票数をdic.itemsで取得し、得票数がcntより大きければansの人物名を更新しています。
最後にansを出力して完了です。