ABC008-B - 投票 を解く
ABC008-B - 投票
タイトルの通り「投票」して
一番票数の多い人の名前を出力する問題のようだ
内容は比較的簡単だけど… どうやって実装するんだ?
ん?
最大でも50人しかいないのか…
これだったら多少非効率なやり方でもいけそうだ
上から1人ずつ見ていって、1人目の名前は全体で何回出現するか…
2人目の名前は全体で何回出現するか…
・・・
n人目の名前は全体で何回出現するか…
という風に数えていって、一番出現回数が多かった名前を出力すればいけそうだ
50人の名前が出てくるパターンでも
50 × 50 = 2500 回のループ回数で済むので
これなら制限時間内に処理も終わるだろう
提出したコード
# 入力 n=int(input()) l=[] for i in range(n): l.append(input()) # a:出現最頻の名前 b:最頻出現回数 a='' b=0 for i in range(len(l)): # c:カウントする名前 _b:出現回数 c=l[i] _b=0 for x in l: if x==c: _b+=1 # 出現回数が最頻出現回数を上回っていたら更新 if b<_b: a=c b=_b # 最頻出現回数を出力 print(a)