この記事では
プログラミング学習サービスpaizaラーニングの
スキルチェックレベルアップ問題集をわかりやすく解説します!
プログラミング言語はpythonです。
今回はCランク相当の以下の問題を解説します。
他のレベルアップ問題集の解答と解説も紹介しているので
ぜひご参考ください!
またpaizaの各ランクの攻略法は
こちらで詳しく紹介しているので、ぜひご参考ください!
野球の審判(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 相当)
の解答と解説を紹介しました。
Dランクの問題に比べて、コードが複雑になります。
そのためコードを書き始める前に
頭の中で処理の流れをイメージをしてから書いていくのがおすすめです!
また他のレベルアップ問題集の問題についての解説も、ぜひご参考ください!