【LeetCode】配列の並び替え問題解いてみた【Ruby】


はじめに

プログラミング初心者です。最近、コーディングテストなるものに出くわしまして
見事に撃沈。。。
そこで、対策法を探してみた結果、LeetCodeというサイトが良いらしいので練習してみることにしました。
この記事はその記念すべき第一問目。張り切って解答フローをまとめてみます。

問題の概要

まず、numsとindexという2つの配列が与えられます。

入力例)

Input: nums = [0,1,2,3,4], index = [0,1,2,2,1]

これらの配列を同時に左から読んでいき、答えとなる配列のindex[ i ]番目にnums[ i ]を挿入し、最終的な結果を出力しなさいというもの。

出力例)

Output: [0,4,1,3,2]

使用したメソッド

今回使用したのはzipメソッドとinsertメソッドの2つ。
zipメソッドは、2つの配列に対して同時にループ処理を行うため。
insertメソッドは、答えとなる配列に対して、引数を指定して要素を追加するため。

コード

実際のコードはこのようになります。

def create_target_array(nums, index)
    output = []
    nums.zip(index).each do |n, i|
        output.insert(i, n)
    end
    return output
end

実行結果

Your input
[0,1,2,3,4]
[0,1,2,2,1]
Output
[0,4,1,3,2]
Expected
[0,4,1,3,2]

参考

https://uxmilk.jp/21132