見出し画像

【初投稿】AtCoder茶色になりました

初めまして!橘華(きっか)といいます。
先日のToyota Programming Contest 2023 Spring Qual A(AtCoder Beginner Contest 288)で無事,茶色コーダーになることができました!!

↑(入茶ツイート,本当にたくさんの方にお祝いを頂きました… そしてフォロワーも3倍ぐらいに,ありがとうございます)

競技プログラミングを始めてから,まず一つの目標としていたので非常に嬉しいです。
ということでつらつら書いていきたいと思います。※長文注意

自己紹介

高1の女子です。AtCoderでのお名前はMafuyuといいますが冬生まれではありません。
今のところPythonでABCに出ています。
首都圏在住で中高一貫校に通っています。学校には一応部活でプログラミングできるところはあるらしいのですが,競プロは恐らくしていないと思います…違う部なのであまりよくわからないのですが(((

競プロを知ったきっかけ

もともと,StudyPlusを1年ほど前からやっていて,そこで相互だった子が「ABC〇〇」と投稿に書いていて,何だろう?と思って調べたのがきっかけです。そこでAtCoderと競技プログラミングの存在を初めて知りました。昨年の5〜6月ぐらいのことです。
その時は「何か難しそうだなぁ」と思いAtCoderのホームページを見ただけで引き返した記憶があります。

転機が訪れたのは夏。
ご存知の方もいると思いますが,私たち2006年度生まれの世代から高校で「情報Ⅰ」が必修化され,共通テストでも課されたりしてしまいます。

(ちなみに弊校は昨年度まで少数派の「情報の科学」が必修でした())
というわけで,7月の頭に,2学期はPythonでプログラミングやりますよ~みたいなことを言われました。
私はプログラミングにまるで自信がなく,(周りもほとんど初心者なのに)優秀な同級生に授業で置いてけぼりにされるのではという謎の恐怖心を抱いて,夏休みの間に予習をしておこうと思ってProgateのPythonコースを始めました。

Progateは1ヶ月分お金を払ってPythonのレッスンを全て終えました。ザ・初心者で何もわからない人には入門としていい教材だと思います。
確か,やっている途中にここで終わっちゃうの面白くないな〜と思ってAtCoderに登録したような気がします。

おそらく昔から各所で使い馴染みのあるペンネームというだけでIDを決めてしまい,その後1ヶ月弱放置。

今までの記憶の記録

参考:AtCoder Problems,StudyPlus
だらだらと長いので飛ばしてもOKです

9月

2022.09.17
AtCoder初提出。JOIの一次予選に触発された模様。文字列をクォーテーションで囲まずRE。
その後はAtCoder Beginners SelectionやAPG4bを細々とやる。

2022.09.26
JOI本を池袋のジュンク堂で買う。
当時発売されたばかりの鉄則本のことは知らなかった。売り切れていたのかもしれない。
その後はJOI本を読みひたすら練習問題を解いていた。情報の授業中にAtCoderで内職し始めた。
アルゴリズム図鑑のアプリとかも見てた。

10月

2022.10.01
ABC271に参加しそびれる。

2022.10.08
ABC272でAtCoderのコンテストに初参加。Aの1完。B問題は面倒そうでやる気にならず,CでTLEを繰り返しまくっていた。

2022.10.14
鉄則本の第2刷が出荷されたと聞き学校帰りに買いに行く。平積みされていた。
1週間後にアルゴ数学本も購入し金欠になる。

2022.10.15
ABC273。遅刻Unrated。AB2完。

2022.10.16
JOI一次予選を満点で通過。

2022.10.22
ABC274。A問題で先週のBのソースコード(四捨五入)が役に立った。
この頃アルゴ式とAOJにも手を出し始める。

2022.10.29
ABC275。3分半で2完し初の茶perf。レートが一気に50も上がって喜ぶ。

11月

2022.11.05
ABC276。まさかの1完。

2022.11.19
JOIの一次予選に3回目も参加する。
ABC278。10分弱で2完し茶perf。個人的にはこの日のB問題がすき。

12月

2022.12.03
ABC280。初めての3完。この回からしばらくC問題の難易度が下がり,ABCがCまでの早解きゲームだと言われるようになる。

2022.12.10
ABC281。C問題がアルゴ式で履修した累積和なお蔭もあって(執筆時点での)最高perfを叩き出す。この日のCもお気に入り。
2週間でレートが117上がり,もしかすると年内に入茶できるかもしれないと思いはじめる。

2022.12.12
JOI二次予選。テスト期間だしJOIGもあるので最初から本気ではなかった。Aだけ解いて勉強に戻った。100点で予選Bランク。
この頃,JOIG参加特典の献本(by kenkooooさん)の話を頂く。螺旋本にした。

2022.12.18
ABC282。現実はそう甘くなかった。C問題に苦労し,執筆時点で唯一冷えた回となっている。

2022.12.24
ABC283。もちろん年内の入茶は叶わなかった。ここで明暗が別れたのがburiodenさん。(2週間前時点でのレートはほぼ同じだった)

1月

2023.01.21
ABC286。初めてコンテスト中にD問題&茶diffを通す。その代わりCが解けなかった。
この問題やABC284-Cなど,主にアルゴ式に頼ってACする問題が増えていく。リアルが多忙で精進量も減る。

2023.01.22
JOIG本選。300点でBランク。
bisectモジュールを使い,初めてコンテスト中に二分探索が書けた。
個人的にはこの日までに入茶するのが目標だったが,398なので一応及第点。

2月

2023.02.04
ABC288。オンサイトの予選仕様で,元々3完早解き勝負なのはわかっていたが予想以上だった。
C で初めてUnionfindを使った。(from アルゴ式)
灰色の知り合いが緑perfを出して戦慄。

精進について

chokudaiさんもおっしゃっていたと思いますが,茶色はAtCoderユーザーで上位50%相当ですがそこまで凄い,というわけではないと思います。というか全然未熟です。

今までに履修し書けるようになったアルゴリズムは累積和と二分探索,DP(1次元)ぐらいです。
ただ,鉄則本などを読んで,ある程度アルゴリズムの考え方は理解していました。なので,コンテスト中はこの問題はこういうアルゴリズムを使えばいけるかな?と考え,アルゴ式などの類題を参考に実装することが多かったです(特にグラフ)。

教材

  • JOI本:一番最初に購入した本。薄くて持ち運びやすく,価格もお手頃でサポートも充実しています。一次予選レベル(Pythonの文法やモジュールなど)の学習に使いました。

  • アルゴ数学本,鉄則本:フルカラーで図もわかりやすいので,主に読みものとしてアルゴリズムの考え方を学ぶのに使っています。E8さん本当にありがとうございます。

  • アルゴリズム図鑑(アプリ):上とほぼ同じです。移動時間などで手軽にできます。自分で動かせるのが楽しい。

  • アルゴ式:アルゴリズムの学習(主に実装)に使っています。鉄則本などでアルゴリズムの考え方を知ったあとこちらで練習問題を解くイメージです。

  • ABCの過去問:一時期C問題をdiffが低い順に解いていました。少しは対応力が上がったかな?と思います。

  • APG4b,AOJ (番外編):C++学習用です。途中で止まってしまっています…一応鉄則本のソースコードが読めるぐらいにはなりました。

今後の目標

とりあえずは入緑…になるのでしょうか。ただ,まだ緑perfを出したことはなく、、、現状の目標はABCで3完を安定させ20〜30分以内で解けるようになることです。その上で,D問題にも挑戦できるようアルゴリズムを勉強していきたいと思います。

悩み

実は,諸事情によりABCにはiPad(第5世代)(物理キーボードが接続できない最後の機種)で出ています。問題ページとPaiza.ioを2画面表示にして使っていて,現状大きな不満はないですけど…ノートパソコン欲しいなぁとたまーに思います。C++やりづらいしライブラリ整備とか夢のまた夢

実績

こないだのABCに出てから無精進なのでそのまま

後々差し替えるかもです

備考:アルゴ式155AC

最後までご覧いただきありがとうございました!