【マップの判定・縦横】STEP: 2 盤面の情報変更 (paizaランク C 相当) 解答例 – PHP編【Aランクレベルアップメニュー】
【Aランクレベルアップメニュー】 > 【マップの判定・縦横】STEP: 2 盤面の情報変更 (paizaランク C 相当)
※リンク先へ移動する為には「paiza」へのログインが必要です。
マップを取得し、指定された座標を「#」に書き換えて出力する問題です。大まかなところは前回と同じです。多次元配列を使用してマップの取得、書き換え、出力を行います。
解答例
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
<?php [$y , $x ,$q] = explode(" ",trim(fgets(STDIN))); //「$y」にy座標数、「$x」にx座標数、「$q」に「#」に書き換える数を取得する for($i =0;$i < $y;$i++){ $array[] = str_split(trim(fgets(STDIN))); //y座標の数だけ、マップを取得する } for($i =0;$i < $q;$i++){ $box[] = explode(" ",trim(fgets(STDIN))); //q回分、「#」に書き換えたい座標を取得し「$box」に格納する } for($i =0;$i < $q;$i++){ $array[$box[$i][0]][$box[$i][1]] = "#"; //「$box」に格納した座標の値を「#」に書き換える } foreach($array as $value){ //全マップを出力する foreach($value as $item){ echo $item; } echo "\n"; } ?> |
