3
0

問題: 野球のストライクとボールのコール

入力: 投球数 N と各投球の結果 s_1 から s_n (strike または ball)
出力:

  • ストライクが 1 〜 2 つたまったとき → "strike!"
  • ストライクが 3 つたまったとき → "out!"
  • ボールが 1 〜 3 つたまったとき → "ball!"
  • ボールが 4 つたまったとき → "fourball!"

アプローチ:

  1. 標準入力から投球数 N と各投球の結果を読み込む
  2. ストライクとボールのカウントを初期化
  3. 各投球結果を基にカウントを更新し、適切なコールを出力

コード:

# 標準入力からデータを読み込む
import sys
input = sys.stdin.read().strip().split()
N = int(input[0])  # 投球数
throws = input[1:N + 1]  # 投球結果リスト

# ストライクとボールのカウントを初期化
strike_count = 0
ball_count = 0

# 各投球結果に対して適切なコールを出力
for throw in throws:
    if throw == "strike":
        strike_count += 1
        if strike_count == 3:
            print("out!")
            break
        else:
            print("strike!")
    elif throw == "ball":
        ball_count += 1
        if ball_count == 4:
            print("fourball!")
            break
        else:
            print("ball!")

コードの説明:

  1. データの読み込み:

    • sys.stdin.read().strip().split() で標準入力からデータを読み込み、スペース区切りで分割します。
    • 最初の値を投球数 N として整数に変換。
    • 残りの値を投球結果リスト throws に格納。
  2. カウントの初期化:

    • strike_countball_count を 0 に初期化。
  3. 投球結果の処理:

    • 各投球結果 throw を順に処理。
    • throw"strike" の場合、strike_count を増加させ、3 つに達したら "out!" を出力してループを終了。そうでなければ "strike!" を出力。
    • throw"ball" の場合、ball_count を増加させ、4 つに達したら "fourball!" を出力してループを終了。そうでなければ "ball!" を出力。

このプログラムは、与えられた投球結果に基づいてストライクとボールのカウントを更新し、適切なコールを出力します。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0