LoginSignup
0
1

More than 1 year has passed since last update.

paiza問題集 スキルチェック過去問題 Cランク野球の審判

Last updated at Posted at 2021-11-15

初めてqiitaで何を書けばいいのかわからないので、paizaの演習問題を書いてみる。

要件
標準入力で 「ストライク」か「ボール」が入力される
ストライクが入力され、かつストライクが1、2の時は「strike!]
ボールが入力され、かつボールが1~3の時は「ball!」
ストライクが入力され、かつストライクが3つの時は「out!」
ボールが入力され、かつボールが4つの時は「four ball!」
ただし、バッターはバットを振らないこと前提

yakiu.php
<?php
$num=trim(fgets(STDIN));
$strike=0;
$ball=0;

for($i=1;$i<=$num;$i++){
   $pitch=trim(fgets(STDIN));
   if($pitch==='strike'){
       $strike++;
       if($strike===3){
            echo 'out!'.PHP_EOL;
            break;
       }else{
            echo 'strike!'.PHP_EOL;
       }
   }
   if($pitch==='ball'){
       $ball++;
       if($ball===4){
            echo 'four ball!'.PHP_EOL;
            break;
       }else{
            echo 'ball!'.PHP_EOL;
       }
   }
}
?>

投球後の結果の処理を解説していくと

yakiu.php
<?php
for($i=1;$i<=$num;$i++){
   $pitch=trim(fgets(STDIN)); //投球の結果を受け取る
   if($pitch==='strike'){
       $strike++; //ストライクなら$strikeが一つ増える
       if($strike===3){ //ストライクのカウントによって条件分岐
            echo 'out!'.PHP_EOL; 
            break;  //バッターが合うとなったので抜け出す
       }else{
            echo 'strike!'.PHP_EOL;
       }
   }
?>

スクリーンショット (1620).png
やったぜ

おまけ

せっかくなのでファールも加えてきた

ファールの要件
ファールが入力され、かつストライクが0、1の時はストライクが一つ増える
ファールが入力され、かつストライクが2の時は変化なし

yakiu.php
<?php
$num=trim(fgets(STDIN));
$strike=0;
$ball=0;

for($i=1;$i<=$num;$i++){
   $pitch=trim(fgets(STDIN));
   if($pitch==='strike'){
       $strike++;
       if($strike===3){
            echo 'out!'.PHP_EOL;
            break;
       }else{
            echo 'strike!'.PHP_EOL
       }
   }
//ここから追加
   if($pitch==='foul'){
       if($strike===2){
            echo 'foul!'.PHP_EOL;
       }else{
            echo 'foul!'.PHP_EOL;
            $strike++;
       }
   }
//ここまで
   if($pitch==='ball'){
       $ball++;
       if($ball===4){
            echo 'fourball!'.PHP_EOL;
            break;
       }else{
            echo 'ball!'.PHP_EOL;
       }
   }
}
?>
入力値
8
ball
strike
foul
ball
foul
foul
ball
strike
出力値
ball!
strike!
foul!
ball!
foul!
foul!
ball!
out!
0
1
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
0
1