はじめに
前回
4日目です。
#4
問題
わーい。B問題だー
考えたこと
入力される[町の名前、人口]を人口でsortして、一番大きい町が過半数以上あるか判別します。
私の場合は、[町の名前、人口]みたいに二次元配列なので普通にsortできないので、
s.sort(key=lambdax:int(x[1]),reverse=True)
でsortしました。参考にしたページ
おしゃれでかっこいいので好き。x: int(x[n])で要素のindexを指定してsortできます。今回は人口でsortしたいのでx[1]、大きい順にしたいのでreverse=True。
人口はfor文で計算しました。
population=0foriinrange(n):population+=int(s[i][1])
ちゃんと変数名を分かりやすく書きました。少し長いけど。
あとはif文に入れるだけ。
n=int(input())s=[list(input().split())for_inrange(n)]population=0foriinrange(n):population+=int(s[i][1])s.sort(key=lambdax:int(x[1]),reverse=True)ifint(s[0][1])>population//2:print(s[0][0])else:print('atcoder')
最後に、print('atcoder')のスペルミスに気をつければ大丈夫。
まとめ
B問題でも簡単な方だと思います。明日は、コンテストがあるので投稿するか迷ってます。毎日投稿
では、また