【配列に対しての複雑な処理】STEP: 5 場所取り (paizaランク C 相当) – PHP編【配列活用メニュー】

Pocket

【配列活用メニュー】 > 【配列に対しての複雑な処理】STEP: 5 場所取り (paizaランク C 相当)
※リンク先へ移動する為には「paiza」へのログインが必要です。

array-utilization-step3-5

解答例

なかなかに複雑そうな印象を受ける問題ですが、実はそれほど難しくはありません。問題文の意味を正確に読み取り、やることを明確にしていきましょう。

1.ブルーシートの配列をつくる

与えられた各情報を取得し、ブルーシートの番号の配列を「for」でk回繰り返しで作成します。

 

2.先頭からf枚のシートを取り除く

次に問題文の流れから、「先頭からf枚のブルーシートを取り除く」とは、「配列の先頭の要素をf回削除する」ということに置き換えることができます。

 

3.配列の重複分を削除する

ブルーシートを先頭から取り除いた後、次のルールで客は店に並ぶとあります。

・自分のブルーシートが 1 枚以上残っているとき、自分のブルーシートのうち、最も先頭に近いブルーシートの位置に並ぶ。
・自分のブルーシートが 1 枚も残っていないとき、並ぶことなく帰宅する。全員が並び終わった後に待機列にいる人の番号を先頭から順に答えてください。

 

少々面倒に書かれていますが、この文面が意味するところは「配列の重複分を削除し、出力しなさい」と置き換えることができます。「array_unique()」を使って答えを導きます。

エッグ

シェアする

コメントを残す

メールアドレスが公開されることはありません。

コメントする