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]