PuzzleAndGame.com

海のダンジョン

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

海のダンジョン

● 海のダンジョン - LEVEL
LEVEL

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

 このダンジョンの中は異世界になっており、海と群島があります。

 あなたは船を乗り継ぎ、島々を渡る必要があります。しかし各島で、3艘の船から適切な1艘を選んで乗らなければ、モンスターに襲われて食べられてしまいます。

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

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


● 問題の内容

 変数「q」として与えられる配列は2次元配列で、以下の6つの情報が入っています。


q=[
    [ 3, 19],  // 0艘目の船 [船の性能, 定員]
    [ 5, 17],  // 1艘目の船 [船の性能, 定員]
    [13,  7]   // 2艘目の船 [船の性能, 定員]
  ];

 船は0艘目から2艘目までの3艘があります。それぞれの船の速度は「船の性能 / 定員」で求めることができます。この値が最も大きな船以外は、モンスターに襲われて食べられます。

 あなたは、船の速度が最も大きな船の番号の数値を、変数「r」に格納してください。

 ただし、船の性能と定員には、特殊な条件があります。船の性能が3以下の場合は、その船は沈みます。つまり速度は0です。また、定員が3名以下の船は、船を操る人がいないので出航できません。つまり速度は0です。

 以下、例を示します。


例1)

q=[
    [ 3, 19],  // 0艘目の船 [船の性能, 定員]
    [ 5, 17],  // 1艘目の船 [船の性能, 定員]
    [13,  7]   // 2艘目の船 [船の性能, 定員]
  ];

の場合の、各船の速度。

0艘目:「船の性能」が3で、3以下なので速度は0。
1艘目:「船の性能 / 定員」は、「5 / 17」で速度は0.29411764705882354。
2艘目:「船の性能 / 定員」は、「13 / 7」で速度は1.8571428571428572。

最も速度が早い船は2艘目なので、変数「r」に「2」を格納する。


例2)

q=[
    [13,  5],  // 0艘目の船 [船の性能, 定員]
    [19,  2],  // 1艘目の船 [船の性能, 定員]
    [ 7, 11]   // 2艘目の船 [船の性能, 定員]
  ];

の場合の、各船の速度。

0艘目:「船の性能 / 定員」は、「13 / 5」で速度は2.6。
1艘目:「定員」が2で、3以下なので速度は0。
2艘目:「船の性能 / 定員」は、「7 / 11」で速度は0.6363636363636364。

最も速度が早い船は0艘目なので、変数「r」に「0」を格納する。

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


● ヒント

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

レベル1用
「船の性能」か「定員」が3以下の場合は、if文で分岐するなどすればよいでしょう。
 また、各船の速度が同値になることはないので、特殊な例外処理は必要ありません(詳しくは問題文の生成コードをご確認ください)。

レベル2用
 レベル2では、割り算と「<」「>」の比較演算子が封じられています。比較演算子の代わりは、Mathのメソッドで探すか、その他の比較演算子を使うとよいでしょう(数が少ないので、総当たりで数値を確かめても文字数内に収まります)。

レベル2用
 割り算の代わりに使える簡単な処理方法は、Mathの三角関数系のメソッドにあります。2つの引数から角度を求める……

● 解答方法

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

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


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


● 初出と解説

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

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

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

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

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

レベル 平均 最短
1 104.14文字 53文字
2 125.9文字 68文字

● 素材

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

関連書籍


情報

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

Web Site : http://puzzleandgame.com/

App Page :

Twitter : ruten


Last Update : 2015-09-15

Release : 2015-09-15

First Appearance : 2015-08-14 CodeIQ

Copyright 2015 Masakazu Yanai.

QR コード