AtCoderで茶色になりましたkunai_S.N.
はじめに
私は毎学期ごとの長期休みに、何かに取り組むことにしています。去年の夏は基本情報技術者の勉強を、冬は応用情報技術者の勉強をしました。残念ながら応用情報技術者の春季試験は午後問題の点数が59点で落ちてしまったので、来月に秋試験を受ける予定です。けれども、今年の夏も冬にやったものと同じことをしても、打ち込んだとは言えないような気がしたため、今年の夏はAtCoderを少し頑張ってみようと思いました。
取り組む前
さて、AtCoderをやろうとして最初にABC(AtCoder Beginner Contest)に何回か参加しましたが、まず気づいたことがありました。私が全くプログラムを書けないということです。一番痛感したのは、単純なソートの実装を標準ライブラリを叩くのではなく、愚直にバブルソートで書いていた点です。遅くてTLEします。そのため、最初にやった競技プログラミングの勉強は、標準ライブラリを用いてソートを行う方法でした。これがおそらく7月の真ん中辺りだったと思います。
何をしたか
最初の方は、有名な「競技プログラミングの鉄則」の星4までの問題をヒューリスティクスを除いて9割くらい解きました。そして、AtCoderのサイト上で常設されている「競プロ典型 90 問」の星4までを30問目まで進めました。その後は実際の問題を解いた方が良さそうと考え、直近のABCの過去問を少なくともC問題まで、できればD問題までを解くようにしました。「AtCoder Problems」によると、7月終わりから1ヶ月間でおよそ150問くらい解いたみたいです。いつの間にか「Longest Streak」という値が1ヶ月分を超えて、結構順位が上がってきたので、最近は忙しくても最低1問解くようにしてます。多分、どこかでやり忘れるとは思いますが……
結果
一回レートがあまり伸びなかった回がありましたが、それ以外では50前後ずつ順調に伸びていき、9月2日のABCで茶色になることができました。しかし、まだ本番でD問題を通したことがないので、もう少し勉強しないとすぐに頭打ちになってしまいそうな感じがします。
最初の方は、Go言語のスライスの意味のわからなさや文字列の扱い方に悩まされましたが、個人的なライブラリの整理や簡単なドキュメントの整備などをして対応しました。他の言語では標準ライブラリを叩くだけのものが、Go言語では結構な分量を書いて実装しなければいけない点は少し大変でした。
プログラムの問題を解くサイトではAtCoderの他にPaizaもやっていましたが、このサイトは一回Sランクを取ってしまうと、頑張るインセンティブがなくなってしまって、それ以降は全く開いていません。PaizaでSランクを取れても、当時のAtCoderランクは灰色だったので、いかにAtCoderのレベルが高いかがわかりますね。
・AtCoder
https://atcoder.jp/users/kunaisn
この記事をシェアする
コメント