【配列活用メニュー】> 【配列を参照する操作】STEP: 6 指定要素の先頭位置 (paizaランク D 相当) [難易度: 1649 ±15]
※リンク先へ移動するためには[paiza]へのログインが必要です。
配列 A の要素数 N と整数 K , 配列 A の各要素 A_1, A_2, ..., A_N が与えられるので、K であるような A の要素のうち、要素番号が最小のものを出力してください。
A に K が含まれない場合は -1 を出力してください。
入力値(例)
1 0
1
出力値(例)
-1
解答例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<?php list($n, $k) = explode(" ", trim(fgets(STDIN))); $counter = 0; for($i = 0; $i < $n; $i++) { $number[] = trim(fgets(STDIN)); if($number[$i] == $k) { $counter = $i + 1; break; } } if($counter > 0) { echo $counter; } else { echo -1; } ?> |
解説
1行目のN、K、2行目以降の数値にKが含まれていたら、その一番めの順番を出力する問題。
1行目のNとKをlistで受け取ります。for()で2行目以降を受け取り、$numberという配列に入れていきつつ、if()でKと同じだったら$counterにループしている$iを入れます。+1しているのは配列が0から数えるので順番を数えるときは1を増やしておきます。
ループを抜けて、if()で$counterが0より大きかったら、$counterを出力します。$counterが0だったら-1を出力します。