📝
【Python】トーナメント優勝者
作るもの
対戦カード(competitions)と結果(results)を与えて、最終的なトーナメントの勝者であるチーム名を返す関数。
実装
tournament_winner.py
def tournamentWinner(competitions, results):
dict = {} # 勝利回数をカウントするための空の辞書を作成
# 各競技の結果とその対戦を順番に処理
for i, comp in enumerate(competitions):
if results[i]: # もしi番目の競技の結果がTrue(チーム1の勝利)なら
dict[comp[0]] = dict.get(comp[0], 0) + 1 # チーム1の勝利回数を辞書に追加または1増やす
else: # もしi番目の競技の結果がFalse(チーム2の勝利)なら
dict[comp[1]] = dict.get(comp[1], 0) + 1 # チーム2の勝利回数を辞書に追加または1増やす
# 辞書の中で最も多く勝利したチーム名を返す
return max(dict, key=dict.get)
# テスト
if __name__ == "__main__":
competitions = [
["HTML", "Java"],
["Java", "Python"],
["Python", "HTML"],
]
results = [0, 1, 1]
print(tournamentWinner(competitions, results))
参考
Discussion