PuzzleAndGame.com

太陽のダンジョン

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

太陽のダンジョン

● 太陽のダンジョン - LEVEL
LEVEL

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

 このダンジョンでは、太陽の光を集めて、その中に入ってきた冒険者を焼き殺す仕掛けを持っています。その熱を防ぐには、天井の窓に生じる「SUN」という文字を塞がなければなりません。

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

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


● 問題の内容

 変数「q」として与えられる文字列は以下のように、縦横3文字になっています。


sun    // ←ここには改行が入る
uns    // ←ここにも改行が入る
snu

文字列として表すのならば、以下のようになる。
q = "sun\nuns\nsnu";

 この文字列を、上下左右に見ていき、「sun」という文字列が見つかった場合は、この文字を塗りつぶします。そして、「塗りつぶした文字の数」を変数「r」に格納します。

s u n # # #
n u s # # #
s n u s n u


1行目:左から右に読んで「sun」なので塗りつぶす。
2行目:右から左に読んで「sun」なので塗りつぶす。
 ↓
塗りつぶした文字が6文字なので、変数「r」に「6」を入れる。
 ↓
【答え】r = 6;

s s n # s #
u s u # s #
n s s # s #


1列目:上から下に読んで「sun」なので塗りつぶす。
3列目:下から上に読んで「sun」なので塗りつぶす。
 ↓
塗りつぶした文字が6文字なので、変数「r」に「6」を入れる。
 ↓
【答え】r = 6;

 注意しなければならないのは、重なり合うようにして読める場合です。その場合は、重なり合って読める場所は、累積して数えるのではなく、1つの文字としてカウントします。以下、例を示します。

s u n # # #
u u u # u #
n u s # # #


1行目:左から右に読んで「sun」なので塗りつぶす。
3行目:右から左に読んで「sun」なので塗りつぶす。
1列目:上から下に読んで「sun」なので塗りつぶす。
3列目:左から右に読んで「sun」なので塗りつぶす。
 ↓
塗りつぶした文字が8文字なので、変数「r」に「8」を入れる。
 ↓
【答え】r = 8;

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


● ヒント

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

レベル1用
 塗りつぶせるマスを格納する配列を別途用意して、条件に一致したマスを塗りつぶしていくのが簡単なやり方でしょう。
 一致するかの判定は、ループを回して確認してもよいですし、正規表現を使うのも1つの手でしょう。

レベル2用
 「sun」という文字列を簡単に作ることができません。JavaScriptの様々な値から文字列を作り、その一部の文字を合成して「sun」という文字列を作るとよいでしょう。

● 解答方法

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

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


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


● 初出と解説

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

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

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

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

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

レベル 平均 最短
1 176.79文字 72文字
2 209.49文字 79文字

● 素材

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

関連書籍


情報

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

Web Site : http://puzzleandgame.com/

App Page :

Twitter : ruten


Last Update : 2015-08-23

Release : 2015-08-23

First Appearance : 2015-07-17 CodeIQ

Copyright 2015 Masakazu Yanai.

QR コード