1. paizaラーニングトップ
  2. レベルアップ問題集
  3. Cランク・スキルチェック過去問題セット(言語選択)
  4. 問題一覧 Swift編
  5. 「野球の審判」を解くために:part5 Swift編

Cランク・スキルチェック過去問題セットのサムネイル
「野球の審判」を解くために:part5 Swift編(paizaランク D 相当)

問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!

問題

下記の問題をプログラミングしてみよう!

「野球の審判」の問題文を読むと、
strike が 3 つたまった場合は、out! とコールする必要があることがわかります。
これは、3 つめの strike が入力された場合は、特別に(strike! ではなく)out! と出力する必要がある、ということです。


今回は、out! をコールするための準備として、与えられた strike の数を数えるプログラムを書いてみましょう。

基本的には前の問題と同様に、入力されたすべての投球結果を、改行区切りで表示してください。
ただし、もし投球結果が strike だった場合、strike! と出力してください。
さらに、strike! と出力した次の行に、それがいくつ目の strike! であるか、その数を半角数字で出力してください。
(投球結果が ball だった場合は(前回の問題と同じく)、そのまま ball と出力してください。)
(ball の次の行には特別な出力は必要ありません。)

入力される値

入力は、以下のフォーマットで与えられます。

N
s_1
s_2
...
s_n

1 行目に合計の投球数を表す整数 N が与えられます。
続く N 行のうち i 行目 (1 ≦ i ≦ N) に i 番目の投球の結果を表す文字列 s_i が与えられます。i 番目の投球がストライクであれば s_i は "strike"、ボールであれば "ball" となります。
入力は合計で N + 1 行からなり、入力値最終行の末尾に改行が1つ入ります。


入力値最終行の末尾に改行が1つ入ります。
文字列は標準入力から渡されます。 標準入力からの値取得方法はこちらをご確認ください
期待する出力

各投球に対する適切なコールを改行区切りで出力してください
出力したコールが strike! だった場合、次の行にその strike! がいくつ目の strike! であるか半角数字で出力してください。

s_1
s_2
...
s_n

条件

すべてのテストケースにおいて、以下の条件をみたします。

3 ≦ N ≦ 6
s_i (1 ≦ i ≦ N) は英字小文字で構成される文字列で、"strike", "ball" のいずれか。
(以下の行は、今回の問題では気にしなくて良いです)
投球はこの打者の番がちょうど終了するまで続きます。すなわち、最終的にこの打者にはアウトかフォアボールのいずれかが必ず与えられ、それ以降の投球はおこなわれません。

入力例1

5
ball
strike
ball
strike
strike

出力例1

ball
strike!
1
ball
strike!
2
strike!
3

入力例2

6
ball
strike
ball
ball
strike
ball

出力例2

ball
strike!
1
ball
ball
strike!
2
ball

問題一覧へ戻る

ページの先頭へ戻る