uni745e.log

イベントや学んだことを書いていく予定

AtCoder緑になったよ

2018/8/25のABC107にて緑になりましたー
2017/2/18のABC055から競プロを初めて1年半…コンテスト回数16回……
実際は競プロから離れてた期間があるので、ほぼ一年ですね。
f:id:uni745e:20180831160905p:plain そこで、僕が緑になるまでにやったことをまとめようかと思います。

やったこと

問題を解いて復習した

具体的に言うと、解けない問題があった時、何故解けなかったか、どうすれば解けるかを解説や他の人のコードを見ながら理解して自分の言葉でまとめてました。分からない問題を分からないままにしない!

例えば解けない問題があったとして、その時のパターンは下の大体3つに分類できると思います。
1. 何をしたら良いかもわからなかった
2. 糸口は見えたが実装できなかった
3. 実装できたけどなんかバグる

1の場合は解説読んでもう一回解いてみる。解説がわかりにくかったら、解説ブログをよむか競プロerが突っ込まれているTwitterのリストがあるので、コンテスト終了後に眺めてみる良いと思います。使ったアルゴリズムの名前とかつぶやいている方がいると思います。
↓こんな感じ

強そうな競プロerをTwitterで見かけたらとりあえずフォローしときましょう。
ライバルを見つけておくとモチベ維持にも繋がります。

2の場合は実装方法の問題なので、具体的なアルゴリズム名 + 言語名とかで検索するか、他の人の提出を見て勉強してました。僕はPythonのitertoolsの便利さを最近学びました。他の人のコードを見ながら勉強することで、だいぶスマートにコードを書けるようになった気がします。

3の場合は問題をもう一度読み直すか、条件設定を見直してます。それでもわからないときは解説読んで、ミスした場所をメモっておきましょう。

そして、解いて終わった問題はブログなりGitHubなりEvernoteなりにまとめて置きましょう。自分や他の人が助かります。よく使うアルゴリズムなんかは自分用にライブラリを作ってまとめておいても良いと思います。
僕は今はGitHubでまとめてますが、今後はブログの方も活用していけたらなと思っています。

github.com

便利なツール・サイト

僕がよく使っていたツールとサイトを紹介します。

AtCoder Problems
自分が解いていない問題がひと目で分かるので進捗管理で重宝してます。
僕は過去問の全然解けてないので、とりあえず毎日少しづつ埋めていきます。
f:id:uni745e:20180831165751p:plain

@drkenさんの過去問精選10問
まずどの問題からを始めれば良いか分からない時はこのページの問題から解けば良いと思います。基本的な操作とアルゴリズムを学べます。

最後に

ここに書いたことはあくまで僕が緑になるまでにやったことであって、これが全て正しいというわけでは無いと思いますが、他の競プロ初心者の役に少しでも立てれば幸いです。コンテストが上手くいかず、モチベが下がることもあるとは思いますが、そういう時は僕を含めTwitter上の競プロerに相談してみてください。

とりあえず緑になれて良かった!
次は水色になれるように頑張りたいと思います!!