この記事はRuby Advent Calendar 2016の最終日の記事です。 発端 秋に行われたRubyKaigi 2016のあとのAfter partyで、以下のような発表をしました。 Rubyで競技プログラミング(入門編) // Speaker Deck 内容は、会社の同僚と一緒にRubyでAtCoderをやっているという話でした。AtCoderはオンラインで競技プログラミングができるサイトで、Rubyを含めたさまざまな言語で参加することができ、過去問についても解答を受け付けているため好きなときにチャレンジすることができます。 競技プログラミングではC, C++, C#, Javaといった言語が主流なので、Rubyでは速度が足らないのではないか?と思われるかもしれません。実際、AtCoderでは2秒の制限時間に対し、入力データが10万行を超えることもあります。それでも、適切なアルゴ