ABC167(Atcoder Beginner Contest)で入茶できたので感想をメモ(python3)

f:id:Doppon:20200517010147p:plain

はじめに

いやぁ(´・ω・`)

だいぶ時間がかかったけどやっと茶色になれました!

普通に嬉しい反面、かなりのんびりやっていたので出場回数の割りにレートが上がってないのは...orz

とまぁ後から自分が茶色になりたてのときにどんな感じだったのか振り返れるようにしておきたいなと思って記事として残しておこうと思います!

茶色になって一番嬉しかった事

f:id:Doppon:20200517011810p:plain

茶色になったとき自分が一番感動したのが Atcoder公式サイト にログインしたときにユーザーネームのところが色が変わってる事ですw!

なんかずっと同じ色だったのが急に変わってランク上がった感がすごい味わえてめっちゃ気持ちよかったです笑

 入茶したときの様子

順に説明すると python3 を使ってるのはやり始めた当初C++の使い方を覚えるのが少し面倒に感じてたのとある程度pythonユーザが増え始めていた時期でその波にのっかっていこうと思ったからですね。

エディタは競技中にサクサク動くものがやっぱり良いと言うのと普段から使う事が多かったのでVScodeに。

またデバックに慣れるのは結構重要だと思っていてバグ探しがスムーズなのも勿論、境界値がちゃんと通るか確かめたりする事が捗るのでそこらへんが息を吸うようにできてる状態だったのは大きいなと。

f:id:Doppon:20200517013514p:plain

それで解説ACに関しては

例えばコンテストが終わってD問題が分からないってなった際はまず最初にTwitterのタイムラインで色んな競技者の解説を眺めたりするところから良くはじめてます。 ( あと嘆いてたり喜んでたりしてるのを見てるとなんか一体感があってすこ 笑 )

また、これは過去問を解いてるときにも言える事ですが次に解説PDFを見てみるってところですね。 しかしそれだけだと具体的な実装で詰まったりしてしまう事とか割とあるのでけんちょんさんのブログを見てD問題あたりの解説をじっくり読み込んでみるって言うのはかなりルーティンになってました。

drken1215.hatenablog.com

ただ、けんちょんさんのブログでは解説PDFよりも丁寧な解説が乗っているのはそうなんですが具体的にpythonのコードでどう実装していけば良いか悩ましかったり深ぼって考えたくなった際に比較的最近みるようになったかつっぱ競プロチャンネルをたまに見たりしてました。

www.youtube.com

ちなみに公式解説動画はだいたいけんちょんさんのブログを見る前後ぐらいに見たりしてました。 ( 動画形式よりドキュメント形式の方が進めやすかったりして割と最終手段みたいな感じではある。 )

そしてだいたいこんな感じのサイクルを回していたらかなり解説ACが捗りはじめてました。

f:id:Doppon:20200517014942p:plain

f:id:Doppon:20200517015046p:plain

もしpython使って詰まってる人がいたら

個人的に競技プログラミングでこれは間違いだったなって精進の仕方が1つだけありまして、特にpythonだとやってしまう可能性が高いと思うんですけど変に別の人がACしたカッコイイコードを理解しようとするのはやめたほうが良いかもってのがあります。

と言うのは解法のアルゴリズムを知りたいと言う目的からpythonのカッコイイ書き方を知るって目的に変わりがちになるのかなって感じる事が多かったからですね。。

あとたま〜にあるのが、本来の綺麗な解法とは違ってオーバーキルした解法( 必要ないのに別のアルゴリズムを当てはめて使ってたりとか )してるコードに遭遇して、それを理解しようとすると時間がかかってしまったりとか。( 後なんかこう言うのすごい気になっちゃうw!! )

なのでもちろん他人のコードを読んで力をつけるのはそれはそれで力は着くのですが、個人的にはむしろ出題された問題の意図をまずは理解するところに専念して余力があれば他人のコードも読んで見てさらに綺麗な書き方を知るなど、実は解説PDFなどには載ってなかった別の解法を知るなどする意味で使うのが良いのかなと最近は思ってました。

何か参考になる事があれば嬉しいです!

さいごに

とりあえず、明日のABC168がんばるぞい(p`・ω・´q)