読者です 読者をやめる 読者になる 読者になる

コンパイラかく語りき

文系新卒プログラマーのメモ

【Ruby】要素数と要素が与えられ、そこから最小値を返すワンライナー

Ruby

タイトルの通り。

競技プログラミングを解いていて、ワンライナーで書きたくて試行錯誤したのでメモ。

d.hatena.ne.jp

 

問題はこんな感じ。

まず、要素数が与えられる。そのあとに要素数回、要素が与えられる。最小の要素を表示せよ。

abc005.contest.atcoder.jp

 

たぶん、初心者的にはこんな記述になる。

gistbcbc88ddedbe839598e16c5c6087b4dc

 

これをちょっとがんばってこう書いた。

gist790616f8787f0b4f93653b2c6ea16993

 

まず、要素数を利用してRangeインスタンスを作る。次にRangeインスタンスを利用して配列を作る。

配列を作るのはmapを使いたいからで、これは意味的にはtimesと同じ。ただし、mapなので配列がreturnされる。

あとは、新しい配列の最小値を表示すればOK.

 

 

Rubyの表現力の高さは素敵ですね。

そして、徐々にその表現力を使えるようになってきて、Rubyが楽しくなってきました。