こんにちは。久々にpythonでネット上にあるスキル問題を解いてみたのですが、非常に遠回りなやりかたになってしまいました。
問題としては、それぞれのメンバーの名前が与えられ、その各々に対して名前を指定してポイントを与えていき、最終的にポイントが高かったメンバーを順番に列挙していくというプログラムです。
自分は、メンバーとポイントのリストを別々に作り、ポイントが一番高いところのインデックスを返し、それを0にするという下記のようなコードを書いてしましました。
一応これでも動作はすると思うのですが、非常に遠回りなやり方な気がしてなりません。
久しぶりということもあり感覚を早く戻したい気持ちです。
無駄だと思うところや皆さんならどうするか、など教えて欲しいです。
python
1 2n=int(input()) 3 4member=input().split(" ") 5kingaku=[0]*n 6m=int(input()) 7#ここから各々のポイント 8for __ in range(m): 9 mem,money=input().split(" ") 10 money=int(money) 11 k=member.index(mem) 12 kingaku[k]+=money 13 14max_index=[] 15 16for i in kingaku: 17 k=kingaku.index(max(kingaku)) 18 max_index.append(k) 19 kingaku[k]=0 20 21for i in max_index: 22 print(member[i])
可能でしたら正確な問題文、あるいはリンクを提示ください。メンバー名入力と同じ順番でポイント入力もされるのかにより、ソースも変わってきます