Help us understand the problem. What is going on with this article?

競技プログラミング備忘録② 配列のuniq地味にすごいなぁ・・・。

指摘により修正2020/5/3

今日は配列のメソッドについて備忘録としてメモしておきます。
先駆者のコードをみていると目から鱗が多い。。。

push

Arrayクラス、インスタンスメソッドの中にpushがございます。
これは、配列に追加するメソッドですが、後入れといえばわかりやすいでしょうか?
[1,2]配列があった場合、3を入れると、既存の配列はそのままで[1,2,3]と格納してくれます。
簡単なメソッドで可読性が高いので愛用しています。

num = 3
ary = Array.new(num)
num.times do |i|
  ary.push(i) # [0,1,2]と格納される
end

uniq

Arrayクラス、インスタンスメソッドの中にuniqメソッドがございます。
簡単にArray → Arrayを返すメソッドです。
これは、主に重複している文字列を削除してくれるメソッドです。

このメソッドの処理速度が尋常じゃないほど早い。

繰り返し処理で同様のメソッドを実現した場合、タイムアウトしてしまうのに対して、(私の組み方に問題ありですけど)
uniqメソッドはタイムアウトしない・・・だと?
この上なく便利なメソッドなのでぜひ競技プログラミング必須ですなぁ。

num = 3
ary = []
num.times do
  ary.push('test') # pushメソッドは配列に追加するメソッドです。簡潔でわかりやすい。
end
p ary #['test','test','test']と配列に格納されています。
p ary.uniq #他のtestは消えて['test']のみ出力されます。
p ary.uniq.length #配列数なので1が出力されます。

まだまだ学ぶことが多いなぁ。

stbtkhr
元経理マンですが、SE職をやらせていただいております。 社内環境の構築、コード記入もAWS構成もできて楽しい日々でございます。 最近は、ボルダリングを週二で通っています。
torico
マンガに関わるWEBサービスを軸に、面白いと思えることを企画・開発している会社です。オタク文化が好きな人は是非一緒に働きましょう! Python3 / Vue.js(TypeScript) / Flutterで開発中!
https://www.torico-corp.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away