木炭価が高いブログ

めっちゃ木炭(`・ω・´)

AtCoder が水色になった(`・ω・´)

AtCoder が水色になりました。やった〜〜(`・ω・´)!!!

f:id:highmoctane:20200315000117p:plain
水色になったの図
うれしいなあ(`・ω・´)

経緯

2019年の4月に AtCoder を始めました。1〜2週間に1回強制的にプログラムを書かなければいけない日を作って,プログラムの書き方を忘れないようにする目的で始めました。 レートに猛烈にこだわることはなく,寝不足の日もお酒を飲んだ日も構わずやりました(`・ω・´)

しばらく緑で停滞していたので,2020 年に入った頃に,そろそろちゃんとやろうかな? という気になりました。LeetCode の問題を解いて競プロに出るアルゴリズムの勉強を始めました。すぐにレートが上がって水色に届いたので,勉強の成果が少しは出ているのではないかなあと思います(`・ω・´)

茶→水になるまでやったこと

  • Python の書き方を覚える
    • 入出力に困らないようにする
      • 何も考えずに map() を使って数列を int に変換する
    • 標準ライブラリを把握する
  • 入力の条件をよく確認する
  • 計算量を気にする
  • 変なバグを埋め込まない
    • 1始まりのインデックスをあらかじめ0始まりに変換しておく
    • Python 独特のインデントのミスなど
  • DFS を何も見ずに書けるようにする
    • 再帰でもスタックでも
  • BFS を何も見ずに書けるようにする
  • 二分探索を書けるようにする
  • 簡単な DP を完全に理解する
  • Deque を使えるようにする
  • Priority queue を使えるようにする
  • Bit を使って全探索できるようにする
  • 累積和を使えるようにする
  • しゃくとり法を使えるようにする
  • Union-Find の存在を知る
  • ローマ字の変数を躊躇なく使う(!)
  • 変なコーナーケースに引っかからない
  • 蟻本を手元に置く
  • LeetCode の Easy から Medium を 100 問くらい解く
  • Golang を習得する
  • Gentoo Linux をインストールできるようにする

こうやって書いてみるとやることたくさんありますね(`・ω・´)

思えば AtCoder を始めた4月は DFS も BFS もおぼつかないレベルだったので,進歩したなあと思います。

ローマ字変数を使うことについて

例えば

wa = sum([1, 2, 3])

とします。

これはいかがなものかとお考えになるでしょう。 しかし,ローマ字変数をを使うことにはメリットがあります。

  1. 英語に訳さなくて良い
  2. Python の組み込み関数を上書きしなくて済む

とくに 2. は大きいと思います。 sum という変数名が使えないから total にしようとか変なことを考えずにコーディングに集中できて良いです。

競プロ以外では使わないようにしましょう(`・ω・´)

就活

水色は就活に役に立つのか??? 立ってほしいなあ……(`・ω・´)

勉強法

LeetCode の Easy から Medium を100問くらい解きました。LeetCode の問題は木の探索や DP など教育によさそうな問題が多くありました。AtCoder のように考察が必要な問題は多くはありませんが,アルゴリズムの習得という点では良いのではないのでしょうか(`・ω・´)

感想

水色はうれしいなあ〜〜(`・ω・´)

ここから先の色になるのは趣味の領域だなあと感じているので青を目指すかどうかはわかりませんが,ゆるゆるやっていきたいと思います(`・ω・´)

© 2015 high-moctane