このページについて

このページは、paiza ラーニング内に開設されているコンテンツ「レベルアップ問題集」で取り扱われているプログラミング課題について、独自の見解を述べたものです。

見解については、paizaラーニングの規約に基づき、許可されている範囲でのみ公開していますが、その内容については paiza とは一切関係なく、また paiza の立場を反映したものではありませんのでご注意ください。

挑戦する課題

レベルアップ問題集Cランクレベルアップメニューから「多重ループ (paizaランク D 相当)」を取り上げます。

以下は、問題公開 Web ページからの引用です。

問題

m 個の文字 c_1, …, c_m と、 n 個の文字列 S_1, …, S_n が与えられます。各 c_i (1 ≤ i ≤ m) について、各 S_j (1 ≤ j ≤ n) に c_i が出現するかをそれぞれ調べ、出現する場合は “YES” を、そうでない場合には “NO” を、そのつど出力してください。

入力される値

入力は以下のフォーマットで与えられます。

  • 1 行目に正整数 m が、 2 行目から (m + 1) 行目では文字 c_1, ...,c_m が、 (m + 2) 行目に正整数 n が、 (m + 3) 行目から ( m + n + 2) 行目では文字列 S_1, ..., S_n が、それぞれ改行区切りで与えられます(入力は全部で (m + n + 2) 行)。

期待する出力

c_1S_1 に出現するかどうか、 c_1S_2 に出現するかどうか、 … 、 c_1S_n に出現するかどうか、 c_2S_1 に出現するかどうか、 c_2S_2 に出現するかどうか、 … 、 c_2S_n に出現するかどうか、 … 、 c_mS_1 に出現するかどうか、 c_mS_2 に出現するかどうか、 … 、 c_mS_n に出現するかどうか、という順番で m * n 回出力してください。
末尾に改行を入れ、余計な文字、空行を含んではいけません。

考え方

執筆中

もっとシンプルに書けそうな気がする。

解答例