どん底から這い上がるまでの記録

どん底から這い上がりたいけど這い上がれない人がいろいろ書くブログ(主にプログラミング)

0103: Baseball Simulation

スポンサーリンク


野球シミュレーション

問題ページ

解き方

塁上の情報を記憶するリストを用意する。

イベントデータがHITで、3塁に走者がいるなら1点加算し、1塁と2塁の走者がいるならそれぞれ次の塁へ進ませる。if文を使わなくてもスライスを使えば短いコードで書くことができる。イベントデータがホームランなら走者の数+1点を得点に加算。

コード(python)

n = int(input())
inning = 0

while inning != n:
    score = 0
    info = [0, 0, 0]
    out_count = 0
    while True:
        event = input()
        if event == "OUT":
            out_count += 1
        if out_count == 3:
            inning += 1
            print(score)
            break

        if event == "HIT":
            score += info[-1]
            info = [1] + info[:2]
        elif event == "HOMERUN":
            score += sum(info) + 1
            info = [0, 0, 0]