競技プログラミングをまた始めた

久しぶりに競技プログラミング再開しました。AtCoderです。ちなみに再開と言っても再開前で3回しかやってないのでほぼ初心者です。

なぜ再開したか

2つあります。

一つは、お手軽にプログラミングを楽しめる環境だと思ったからです。私の観測範囲だとサービスを作ってなんぼ!プログラミングは手段です!という風潮を感じていて*1、それだけだと息苦しいなあと思っていました。それに対し、AtCoderのコンテストは目の前の問題に打ち込めばいいだけです。せいぜい2時間で終わります。解けない問題があっても、数時間後には答えが知らされます。しかも解けるとうれしい。最高ですね。

もう一つは、手頃な目標が見つかったからです。下の記事で、レート(色)とレベル感の相場が記載されていました。

qiita.com

これを見て、とりあえず緑(レート800)を目指そう!俺も申し分ないソフトウェアエンジニア!という気持ちになりました。

現状

言語はJava8使っています。ABC*2に参加していますが、復帰後の初回は2完*3、次は3完でした。

課題

とにかくアルゴリズムが全然かけないことです。再帰関数を書こうとしてもStackOverFlowErrorが出てしまいます。調べてみても、どうしたらそのようなエラーが出ないような書き方ができるのか端的に書いてあるサイトがみつかりませんでした。蟻本を読みながら過去問を解いていって理解を深めていきたいと思っています。

また、Collectionを昇順、降順でソートするなど、簡単な処理をパパっと書けるようにするのも大事かなと思います。これは、書いていればそのうち覚えるでしょう。

所感

1年半ぶりにAtCoderに参加しての感想は、

「人がめちゃくちゃ増えている」です。

最後に参加したABC056の参加者は600人強でしたが、最新のABC115では2300人を超えていました。大幅に成長していてすごい。平均レベルも上がっている気がします。

あとは「楽しい」です。飽きないうちに次の色を目指したいと思います。

*1:あと本業もそんな感じ

*2:競技プログラミング初心者向けの全4問のコンテスト

*3:さらっと書きましたがだいぶ恥ずかしい出来です。