ガジェット通信 GetNews

見たことのないものを見に行こう

【選択式問題】配列パズル2【言語不問】解答と解説

DATE:
  • ガジェット通信 GetNewsを≫

配列パズル2

本問題は、仮想コードのルールに従って生成される配列や値を、選択肢から選ぶというものでした。

それでは以下、各問題とその解答を見ていきましょう。

問題のオープニング

あなたは、配列の女神「ア=レイ」の神殿にやって来ました。

この神殿では、女神の出す問題に正解すれば富を約束され、間違うと死を約束されます。

あなたは、歴戦のプログラマーとして、女神の持ち物を整理しなければなりません。

この神殿では、仮想コードが提示されます。その結果生成される配列を、選択肢から選びます。

// 仮想コードのルール
[1, 2, 3] …… 角括弧で配列を示す。要素はカンマ区切り。
配列[0] …… 角括弧の添え字で、配列の指定要素の値を取り出す。
       添え字は0から始まる。
sum(配列) …… 配列の値を合計する。
max(配列) …… 配列の最大値を得る。
min(配列) …… 配列の最小値を得る。

問題1

// 問題
[[10, 20, 30][1], [30, 20, 10][2]]

// 選択肢
[10, 20]
[1, 2]
[20, 10]

それでは問題の配列が、どのように仮想コードで処理をされていくか、見ていきましょう。

// 仮想コードの処理

[[10, 20, 30][1], [30, 20, 10][2]]

/* [10, 20, 30][1] は 20 */

[20, [30, 20, 10][2]]

[20, [30, 20, 10][2]]

/* [30, 20, 10][2] は 10 */

[20, 10]

[20, 10]

そのため答えは、3番目の選択肢の『[20, 10]』になります。

以下、ブラウザのコンソールで確認できるように、JavaScriptのコードを示します。

// 参考コード

// 関数
function sum(a) {for (var i = 0, r = 0; i

// 出力結果
[20, 10]

問題2

// 問題
sum([max([10, 20, 30]), min([30, 20, 10])])

// 選択肢
20
40
60

それでは問題の配列が、どのように仮想コードで処理をされていくか、見ていきましょう。

// 仮想コードの処理

sum([max([10, 20, 30]), min([30, 20, 10])])

/* max([10, 20, 30]) は 30 */

sum([30, min([30, 20, 10])])

sum([30, min([30, 20, 10])])

/* min([30, 20, 10]) は 10 */

sum([30, 10])

sum([30, 10])

/* sum([30, 10]) は 40 */

40

40

そのため答えは、2番目の選択肢の『40』になります。

以下、ブラウザのコンソールで確認できるように、JavaScriptのコードを示します。

// 参考コード

// 関数
function sum(a) {for (var i = 0, r = 0; i

// 出力結果
40

問題3

// 問題
sum([[3, 5, 4, 2, 1][max([1, 4, 3, 2])], 4])

// 選択肢
1
2
3
4
5
6
7
8

それでは問題の配列が、どのように仮想コードで処理をされていくか、見ていきましょう。

// 仮想コードの処理

sum([[3, 5, 4, 2, 1][max([1, 4, 3, 2])], 4])

/* max([1, 4, 3, 2]) は 4 */

sum([[3, 5, 4, 2, 1][4], 4])

sum([[3, 5, 4, 2, 1][4], 4])

/* [3, 5, 4, 2, 1][4] は 1 */

sum([1, 4])

sum([1, 4])

/* sum([1, 4]) は 5 */

5

5

そのため答えは、5番目の選択肢の『5』になります。

以下、ブラウザのコンソールで確認できるように、JavaScriptのコードを示します。

// 参考コード

// 関数
function sum(a) {for (var i = 0, r = 0; i

// 出力結果
5

CodeIQ運営事務局より

柳井さん、ありがとうございました!
現在、柳井さんの最新問題が出題中です。
ぜひ挑戦してみてくださいね!

カテゴリー : デジタル・IT タグ :
CodeIQ MAGAZINEの記事一覧をみる ▶
  • 誤字を発見した方はこちらからご連絡ください。
  • ガジェット通信編集部への情報提供はこちらから
  • 記事内の筆者見解は明示のない限りガジェット通信を代表するものではありません。