長期投資シミュレーションツール『Tousimu』をリリースしました!

【解答付き】paizaのスキルチェック過去問題「野球の審判(Cランク)」を解説!

プログラミング
スポンサーリンク

この記事では

プログラミング学習サービスpaizaラーニング

スキルチェックレベルアップ問題集をわかりやすく解説します!

プログラミング言語はpythonです。

今回はCランク相当の以下の問題を解説します。

他のレベルアップ問題集の解答と解説も紹介しているので

ぜひご参考ください!

またpaizaの各ランクの攻略法は

こちらで詳しく紹介しているので、ぜひご参考ください!

スポンサーリンク

野球の審判(paizaランク C 相当)の解答と解説

今回の問題は「 野球の審判(paizaランク C 相当)」です。

問題はこちらからご確認ください。

野球の審判(paizaランク C 相当)

この問題を解くのに必要な知識は6つです。

必要な知識
  • 入力を受け取る
  • str型からint型に変換
  • 改行区切りの入力を受け取る
  • 辞書で数を数える
  • 同じ数値かで条件を課す
  • 結果を出力

この記事では、上記の6つの中で

  • 辞書で数を数える
  • 同じ数値かで条件を課す

の2つについて、それぞれ詳しく解説します。

残りの

については、以下の記事をご参考ください!

辞書で数を数える

まずは「辞書で数を数える 」です。

この問題では、1行目で投球数が入力され

その後に投球数の数だけ結果(ストライク or ボール)が

改行区切りで入力されます。

そのためまずは変数とfor文を使って入力を受け取ります。

# 投球数の入力を受け取りint型に変換
count = int(input())

# 投球数の数だけ繰り返す
for _ in range(count):
    # 結果を代入
    res = input()

for文については、こちらをご参考ください!

次にストライクとボールの回数を数えるために

ストライクとボールをそれぞれキーとする辞書を定義します。

# 投球数の入力を受け取りint型に変換
count = int(input())

# 結果を数える辞書
results = {"strike":0,"ball":0}

# 投球数の数だけ繰り返す
for _ in range(count):
    # 結果を代入
    res = input()

辞書についてはこちらをご参考ください!

そして入力された結果に応じて、それぞれの値を1増やします。

# 投球数の入力を受け取りint型に変換
count = int(input())

# 結果を数える辞書
results = {"strike":0,"ball":0}

# 投球数の数だけ繰り返す
for _ in range(count):
    # 結果を代入
    res = input()
    # 入力された結果の値を1増やす
    results[res] += 1

足し算のような四則演算については、こちらをご参考ください!

同じ数値かで条件を課す

次は「同じ数値かで条件を課す」です。

辞書の各結果の値が

  • ストライクであれば3か
  • ボールであれば4か

if elif文を使って条件を課します。

# ストライクの値が3の場合
if results["strike"] == 3:
    # ストライクの値が3の場合の処理
elif results["ball"] == 4:
    # ボールの値が4の場合の処理

if文についてはこちらをご参考ください!

そしてそれぞれprint関数を使ってout!またはfourball!と出力します。

# ストライクの値が3の場合
if results["strike"] == 3:
    # "out!"と出力
    print("out!")
elif results["ball"] == 4:
    # "fourball!"と出力
    print("fourball!")

最後にアウトでもフォアボールでもない場合は

else文で、入力された結果と!文字列として結合して出力します!

# ストライクの値が3の場合
if results["strike"] == 3:
    # "out!"と出力
    print("out!")
# ボールの値が4の場合
elif results["ball"] == 4:
    # "fourball!"と出力
    print("fourball!")
# 上記以外の場合
else:
    # 入力された結果に"!"を付け足して出力
    print(res + "!")

文字列の結合については、こちらをご参考ください!

野球の審判(paizaランク C 相当)の解答

まとめると「野球の審判(paizaランク C 相当)」の解答は以下です。

# 投球数の入力を受け取りint型に変換
count = int(input())

# 結果を数える辞書
results = {"strike":0,"ball":0}

# 投球数の数だけ繰り返す
for _ in range(count):
    # 結果を代入
    res = input()
    # 入力された結果の値を1増やす
    results[res] += 1

    # ストライクの値が3の場合
    if results["strike"] == 3:
        # "out!"と出力
        print("out!")
    # ボールの値が4の場合
    elif results["ball"] == 4:
        # "fourball!"と出力
        print("fourball!")
    # 上記以外の場合
    else:
        # 入力された結果に"!"を付け足して出力
        print(res + "!")

この問題では、「for文if文の組み合わせ」が必要になりました。

しかしここまで解説したように、処理を分割しそれぞれを一つ一つ見ていくと

基本通りの内容で特に難しいものは無かったかと思います。

ぜひ他の問題も処理の流れをイメージし

そして分割した上で問題に取り組んでいきましょう!

スポンサーリンク

まとめ

今回はpaizaのスキルチェック過去問題の中で

  • 野球の審判(paizaランク C 相当)

の解答と解説を紹介しました。

Cランクの問題からは必ずif文またはfor文が登場し

Dランクの問題に比べて、コードが複雑になります。

そのためコードを書き始める前に

頭の中で処理の流れをイメージをしてから書いていくのがおすすめです!

また他のレベルアップ問題集の問題についての解説も、ぜひご参考ください!

タイトルとURLをコピーしました