記憶の外へ走れ

Run out of memory

AtCoderで茶色になりました

昨年末からAtCoderと言うサイトで競技プログラミングのコンテストに参加しています。

atcoder.jp

きっかけは「【転職エントリ】Googleに入社します」という記事を読んだことでした。この記事は血液内科医からGoogleのエンジニアに転職した方が書かれたものですが、この方には遠く及ばないものの私も一度は情報系の学部に入って2年間勉強し、その後医学部に入って医師になり、現在は医療情報の業務も行っているので何となく親近感があります。

上記の記事の中でAtCoderが出てきており、面白そうだったので私も参加してみることにしました。AtCoderではユーザのランク(Rating)に応じて色分けがされており、灰色→茶色→緑色→水色→青色→・・・ と色が変わっていきます。

f:id:cooney18:20200120073852p:plain

色ごとの実力の目安については、AtCoder社の社長のブログで言及されており、茶色については

個人的な印象としては、

  • 情報系の学生が茶色であれば、ちゃんと勉強してるなって印象になる
  • 派遣で来たプログラマAtCoder茶色だったら結構安心する
  • 茶色があればエンジニアとしてアルゴリズム面においての安心感があるかと言われたら、正直物足りない

みたいな印象があります。スキル的には、

  • 標準入出力、if、forなどの単純な操作はできる
  • 問題文を正しく理解し、仕様通りの実装をすることが出来る
  • 複雑な問題や、数学的処理が必要な問題を解決する能力はない

という印象です。コーディング試験でおなじみFizzBuzzは簡単に組める水準です。

 とされていますが、実際は茶色の上位であればIT企業の平均的なプログラマより実力は上だと思います(ブログの中で社長も言及している通り、あくまでアルゴリズム力に関してですが)。

参加回数が少ないうちはRatingに対して低めに補正がかかってしまうらしいのですが、現在の私の実力だと茶色の真ん中くらいになりそうです。正直、水色は厳しいと思うので、まずは緑色を目指して勉強していこうと思います。

 現在、こちらの本とAtCoderの過去問で勉強しています。

プログラミングコンテスト攻略のためのアルゴリズムとデータ構造

プログラミングコンテスト攻略のためのアルゴリズムとデータ構造

 

 競技プログラミングに限らず、基本的なアルゴリズムの勉強になるいい本だと思います。緑色になれた報告ができるように頑張っていきたいと思います。