はじめに
水色Coderになった報告と振り返りをしていきます!
適宜読み飛ばしてください。
目次
1.自己紹介
2.参加までの経緯
3.入水までにやったこと
4.今後の抱負・謝辞
1. 自己紹介
ワニと申します。B3です。
- メイン言語:Python
いつかJavaかC++に転向したい - 趣味:
- NBA鑑賞
カイリーアービングのダンスみたいなドリブルが大好き。 - ガジェット
↓推し三選 - 漫画・アニメ・本
静かな雰囲気のものがマイブームです。
↓おすすめ
- NBA鑑賞
2. 参加までの経緯
高校までは数学漬けでした。
けれど訳あって別の道に進み、喪失感を抱えた大学二年の春、見つけたのはLillianさんの入水記事でした。
おもちゃと自分が輝けるフィールドが新たに手に入るかもしれないと、大学で少しづつコードを書く日々が始まります。当時プログラミングは未経験でした。目標は入水です。
3. 入水までにやったこと
〜入緑(3ヶ月)
-
面倒なことはpythonにやらせよう
非エンジニア向けに実用的なpythonのコードが載っています。
競プロにおいては文法書より遠回りでしたが、利便性に感動しながら手を動かすことができて、飽きませんでした。
またパソコンで環境構築をする上で周辺知識も獲得できて、逆に近道だったのかもしれません。 -
E8さんの記事
まず最初にこれが目に入りました。これ通りにアルゴリズムを調べる&コードを書く&バグを知り合いに質問するのループで最低限のアルゴリズムは一周できました。精選100問は最高です。
1問1問丁寧に仕上げたためか、AC200問程度で想像以上に早く入緑できました。
〜入水(6ヶ月)
ここからが大変でした。高校数学の貯金で何とかしていましたが、入水にはDPやグラフといったアルゴリズムの迅速な運用が試されます。元々プログラミングの経験が希薄な上、アルゴリズムの知識量・定着度は貧弱なものだったからです。
その上学科柄繁忙期に差し掛かり、ピンチです。
その際T.Hのアドバイスのもと入水の際特に頻出のアルゴリズムである
- BFS・DFS
- Unionfind
- DP
- ダイクストラ法
- 累積和
- MOD
- 二分探索
に絞って単元別に解くことにしました。高速かつ確実に実装できることがゴールです。その際以下のサイトが有用でした。
-
AtcoderTags
問題に単元のタグがついています。 -
EDPCコンテスト
20問ほどを繰り返し解くと緑・水程度のDPは全て典型問題に感じます。 -
鉄則本
単元別に基本問題・応用問題・解説が載っている競プロ界の青チャートです。これ一冊で十分かもしれません。
また、vscodeやchrome拡張機能も利用し始めました。
結果D問題までが安定して1時間以内に解き終わるようになり、E以降も数学を武器に手を伸ばすと水パフォが連続して出るようになりました。
4. 謝辞・今後の抱負
ここまでめげずに続けられたのは
twitterでいつも絡んでいただけているviralさんやらいとさんをはじめとするFFの皆さん、
読み応えのある記事を書いてくださるE8さんやけんちょんさん、
リアルでコードのバグを迅速に直してアドバイスをくれるT.Hのおかげです。
この場を借りてお礼申し上げます。
元々憧れの入水を達成したら身を引こうと思っていました。しかし一度乗りかかった船です。今後とも精進を続けます!