ガジェット通信

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

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

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

配列パズル

本問題は、仮想コードを実行した結果、生成される配列を選ぶという内容でした。

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

問題のオープニング

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

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

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

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

// 仮想コードのルール
[1, 2, 3] …… 角括弧で配列を示す。要素はカンマ区切り。
push(配列, 値) …… 配列の末尾に値を追加。配列自身を戻す。
unshift(配列, 値) …… 配列の先頭に値を追加。配列自身を戻す。
pop(配列) …… 配列の末尾の要素を削除。配列自身を戻す。
shift(配列) …… 配列の先頭の要素を削除。配列自身を戻す。

問題1

// 問題
unshift(push([1, 2, 3], 4), 0)

// 選択肢
[1, 2, 3, 4, 0]
[4, 1, 2, 3, 0]
[0, 1, 2, 3, 4]

仮想コードの実行結果は、以下になります。

unshift(push([1, 2, 3], 4), 0)

push(配列, 値) …… 配列の末尾に値を追加。

unshift([1, 2, 3, 4], 0)

unshift(配列, 値) …… 配列の先頭に値を追加。

[0, 1, 2, 3, 4]

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

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

// 参考コード

// 関数
function push(a, p) {a.push(p); return a};
function unshift(a, p) {a.unshift(p); return a};
function pop(a) {a.pop(); return a};
function shift(a) {a.shift(); return a};

// 問題
console.log(unshift(push([1, 2, 3], 4), 0));

// 出力結果
[0, 1, 2, 3, 4]

問題2

// 問題
unshift(shift(shift([1, 2, 3])), 0)

// 選択肢
[0, 1]
[0, 3]
[1, 0]

仮想コードの実行結果は、以下になります。

unshift(shift(shift([1, 2, 3])), 0)

shift(配列) …… 配列の先頭の要素を削除。

→ unshift(shift([2, 3]), 0)

shift(配列) …… 配列の先頭の要素を削除。

unshift([3]), 0)

unshift(配列, 値) …… 配列の先頭に値を追加。

[0, 3]

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

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

// 参考コード

// 関数
function push(a, p) {a.push(p); return a};
function unshift(a, p) {a.unshift(p); return a};
function pop(a) {a.pop(); return a};
function shift(a) {a.shift(); return a};

// 問題
console.log(unshift(shift(shift([1, 2, 3])), 0));

// 出力結果
[0, 3]

問題3

// 問題
push(pop(push(pop([1, 2, 3]), 4)), 5)

// 選択肢
[1, 2, 4, 5]
[1, 2, 5]
[1, 4, 5]

仮想コードの実行結果は、以下になります。

push(pop(push(pop([1, 2, 3]), 4)), 5)

pop(配列) …… 配列の末尾の要素を削除。

→ push(pop(push([1, 2], 4)), 5)

push(配列, 値) …… 配列の末尾に値を追加。

→ push(pop([1, 2, 4]), 5)

pop(配列) …… 配列の末尾の要素を削除。

push([1, 2], 5)

push(配列, 値) …… 配列の末尾に値を追加。

[1, 2, 5]

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

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

// 参考コード

// 関数
function push(a, p) {a.push(p); return a};
function unshift(a, p) {a.unshift(p); return a};
function pop(a) {a.pop(); return a};
function shift(a) {a.shift(); return a};

// 問題
console.log(push(pop(push(pop([1, 2, 3]), 4)), 5));

// 出力結果
[1, 2, 5]

CodeIQ運営事務局より

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

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

TOP