PuzzleAndGame.com

雨降りのダンジョン

※ バグを見つけたら、お気軽にご連絡ください(メール/Twitter

雨降りのダンジョン

● 雨降りのダンジョン - LEVEL
LEVEL

 あなたはプログラミングが得意な冒険者です。あなたは「雨降りのダンジョン」にたどり着きました。

 このダンジョンでは、月曜から日曜の1週間の天気予報をもとに、強酸性の雨を避けて、進んでいかなければなりません。

 しかし、手に入れられる天気予報は、7日のうち火曜から土曜のどこか1日が欠けています。この欠けた日の天気を正しく推測しなければ、無駄な時間を費やしたり、強酸性の雨によってダメージを受けたりします。

 あなたは、プログラミングが得意な冒険者として、コードを工夫して、ダンジョンを突破してください。

(この問題はCodeIQが初出です。詳しくはページ末の初出と解説をご覧下さい)


● 問題の内容

 変数「q」として与えられる配列は「[1, 2, 4, 2, 0, 1, 2]」のような要素数7の配列です(月曜~日曜に対応しています)。

 この配列の各要素には、1(晴れ)、2(曇り)、4(雨)のいずれかの値が入っています。また、要素1~5のいずれかの値が欠如しており、0(不明)となっています(最初と最後の要素には0は入りません)。

 要素の値が0(不明)の場合は、前後の要素の値を合計して6以上の場合は「雨」と見なします。つまり「4, 0, 2」「4, 0, 4」「2, 0, 4」の並びの時には、0を4(雨)と見なします。それ以外の時は1(晴れ)と見なします。

 あなたが戻す値は、雨の場合は1、その他の場合は0、が各要素に入った要素数7の配列です。

 以下に例を示します。


例1)「[2, 4, 4, 4, 1, 0, 1]」の場合は
   「[0, 1, 1, 1, 0, 0, 0]」を戻す。

 ※0と前後の並びは「1, 0, 1」。
  前後の合計は「1 + 1 = 2」なので6未満。
  そのため、0は1「晴れ」と見なす。よって戻す値は0。


例2)「[1, 2, 0, 2, 4, 1, 2]」の場合は
   「[0, 0, 0, 0, 1, 0, 0]」を戻す。

 ※0と前後の並びは「2, 0, 2」。
  前後の合計は「2 + 2 = 4」なので6未満。
  そのため、0は「晴れ」と見なす。よって戻す値は0。


例3)「[1, 0, 4, 1, 1, 4, 2]」の場合は
   「[0, 0, 1, 0, 0, 1, 0]」を戻す。

 ※0と前後の並びは「1, 0, 4」。
  前後の合計は「1 + 4 = 5」なので6未満。
  そのため、0は「晴れ」と見なす。よって戻す値は0。


例4)「[4, 2, 4, 0, 2, 4, 2]」の場合は
   「[1, 0, 1, 1, 0, 1, 0]」を戻す。

 ※0と前後の並びは「4, 0, 2」。
  前後の合計は「4 + 2 = 6」なので6以上。
  そのため、0は「雨」と見なす。よって戻す値は1。


例5)「[1, 4, 1, 4, 4, 0, 4]」の場合は
   「[0, 1, 0, 1, 1, 1, 1]」を戻す。

 ※0と前後の並びは「4, 0, 4」。
  前後の合計は「4 + 4 = 8」なので6以上。
  そのため、0は「雨」と見なす。よって戻す値は1。

 本問題では、この問題の答えを表すコードを、入力欄に記載します。


● ヒント

 ヒントなしで解きたい方は、ヒントを表示しないで挑戦してください。下の方のヒントほど、より直接的なヒントになります。

レベル1用
 変数「q」をループ処理で順番に処理していき、0の場合のみ、違う処理を行えばよいでしょう。
 0は要素の先頭と末尾には来ないので、1つ前、1つ後の値を取る時に、特別な処理は必要ありません。

レベル2用
 判定を行う方法が制限されています。とはいえ、出てくる数字の種類と組み合わせはわずかしかありません。
 配列の要素に答えを格納して、添え字により条件分岐をさせるなど、工夫すれば解くことができます。

● 解答方法

「禁止文字を使わず」「指定の文字数内に収まる」ように、以下の入力欄(下記コードのの部分)を埋めてください。改行は1文字として数えます。

※ 初出時のレギュレーション:解答の確認は、出題時点で最新の「Google Chrome」としていました。


● 問題
◆ 条件
レベル切り替え: 問題トップ
◆ 問題生成コードと生成データ
◆ 解答入力コード
◆ 出力


● 初出と解説

 本問題の初出はCodeIQになります。その問題を、転載の許可を取って、本サイトに掲載しています。

 「CodeIQ」は、ITエンジニア向け実務スキル評価サービスです。転職サイトの一種ですが、現在転職の希望がなくても利用できます。ここでは楽しいプログラミングの問題が、多数出題されています。かく言う私も、様々な変わった問題を出しています。おすすめです。

CodeIQ(本家サイト、多数の問題が出題)、CodeIQ JOBS(転職情報がまとまっているページ)

 本問題の解説記事は、以下から読めます。

 各レベルの最短文字数は、以下の通りです。(特殊な値の取り方をしたコードは省いています)

レベル 平均 最短
1 82.53文字 37文字
2 104.02文字 38文字

● 素材

 本問題の画像は、パブリックドメインの画像と、以下のページの素材を利用しています。

関連書籍


情報

開発&著作権者 : 柳井 政和

Web Site : http://puzzleandgame.com/

App Page :

Twitter : ruten


Last Update : 2015-08-23

Release : 2015-08-23

First Appearance : 2015-06-19 CodeIQ

Copyright 2015 Masakazu Yanai.

QR コード