paiza Bランクレベルアップメニュー STEP53 「五目並べ(横) PHP編」解答例

コメントアウトしてあるノイズが多いですが、ご参考までに。
ランクアップ問題は連続した問題群なので、「後で使うかもしれない」というのがあって
つい残してしまいがちです。

<?php
    // 自分の得意な言語で
    // Let's チャレンジ!!
    
    $h = 5;
    $w = 5;
    
    //マップ取得
    for ($i = 0; $i < $h; $i++) {
        $hoge = trim(fgets(STDIN));
        for ($j = 0; $j < $w; $j++) {
            $maps[$i][$j] = mb_substr($hoge, $j, 1);
        }
    }
    
    //横一行を配列に格納
    for ($i = 0; $i < $h; $i++) {
        for ($j = 0; $j < $w; $j++) {
            $lines[$i][] = $maps[$i][$j] ;
        }
    }
    //print_r($lines);
    
    //配列内の値の出現回数をカウント
    for ($i = 0; $i < $h; $i++) {
        $counts[$i] = array_count_values($lines[$i]);
    }
    //print_r($counts);
     
     
    $winner = "D"; //初期設定
    
    //判定
    for ($i = 0; $i < $h; $i++) {
        foreach($counts[$i] as $key => $value){
            //echo($key.",".$value."\n");
            if($value==5 && $key!="."){//もし5つ揃っていたら
                $winner = $key;
            }
        }
    }
    
    echo($winner."\n");
    
     
    /*
    //出力
    for ($i = 0; $i < $h; $i++) {
        for ($j = 0; $j < $w; $j++) {
            echo($maps[$i][$j]);
        }
        echo("\n");
    }
    */


?>

いつもの!

この記事の問題があるページはこちら
paiza Bランクレベルアップメニュー(PHP編)

https://paiza.jp/works/mondai/prob60/problem_index?language_uid=php
1+