2022年12月17日のAtCoder Begginer Contest 282で茶色コーダーになることができました!今日は自己紹介がてらここに至るまでの僕の話をしていきたいと思います。

生い立ち?
2001年の天気のよい日、沖縄のとある病院で産声を上げました…なんて言っていると日が暮れてしまうので、惜しいですが割愛して、高校入学から綴りたいと思います。
高専時代
なんかいろいろあって、独立行政法人 国立 沖縄工業高等専門学校というところに入学しました。いわゆる「高専」と呼ばれている、5年制の学校です。中学卒業後、高専に行く多くの人はここで青春を捨て5年間黒い画面と付き合うことになります。僕はここでプログラミングを始め、最終的にはサイバーセキュリティ関連を専攻していました。卒業研究は、大まかにいうとシステムコールトレースによるマルウェア検知です。ここでセキュリティの始めの一歩を学びました。
高専に進学した人の進路には、大きく分けて「就職」、「専攻科」、「編入学」という道があります。ほとんど(70-90%ぐらい)の人は就職になり、大企業やその傘下の会社に就職していました。
専攻科というのは少し特殊で、5年間いた高専ともうちょっと仲良くしたいという変な人が行く場所です。
うそです。少し真面目に話すと、さらに2年間、自分の専攻を極めることができ、卒業後は4大卒と同じく学士となります。ちなみに、専攻科と区別して、始めの5年間を本科といいます。本科卒業後は準学士という「称号」になります。
ここで僕は就職、専攻科進学のどちらも選ばず、4大への編入という道に進むことにしました。結果として、現在は電気通信大学(以降、電通大)という大学に3年次編入しています。ここも高専に似てちょっと変な雰囲気の大学です。編入についての情報は、気が向いたら別で書くかもしれません。書かないかもしれません。
大学時代(執筆現在)
現在は、電通大の学部3年に所属しています。編入した人は単位認定という地獄のような手続きをしないといけないのですが、僕は50ちょいしか単位を認定してもらえなかったので、今年で64単位取ることになってしまいました。GPAは3を維持することが精一杯で、最近配属された研究室内の院推薦枠争奪戦に既に負けました。大学では高専から引き続きセキュリティ関連のことをしています。
2022年11月12日のABC277からAlmondLatteという名前で競プロを始めました。大体1ヶ月ちょいぐらいで茶色に到達したことになります。が、ゼロから急成長を遂げて茶色にきたわけではありません。
ぶっちゃけいうと
本当は、競技プログラミングをするのは初めてではありません。実のところは高専1年生のときに競技プログラミングに出会い、高専2年では情報オリンピック本戦(JOI18/19)に出場しました。本戦では強い人たちにボコボコにされましたが、楽しかったと記憶しています。僕の記憶では、小学6年生の女子がいたり、某双子に出会ったりしたと思います。たぶんそんな感じでした。このときはまた別の名前で競プロerとして活動しており、緑色半ばぐらいで熱量が冷めた(?)のか競プロ界隈からフェードアウトしていきました。
最近になってまた競プロ界隈の盛り上がりを見て、楽しそうだなぁと思って始めました。前のアカウントで始めるという選択肢がなかったわけではないですが、心機一転新しくアカウントを作って始めることにしました。もし探せたら、当時のアカウントのスクショを貼っておきます。AtCoderの利用規約では1人1つのアカウントしか所有できないので仕方なく削除することになりましたが、レートが冷め続けるコンテストに出るよりは、0から始めた方が楽しいと思いますし、これで現状満足しています。セキュリティ関連の勉強と比べて、競技プログラミングは自分の成長が目に見えてわかるので楽しいです。CTFにも手を出してみたいですが、今は競技プログラミングを楽しんでいるのでそれでいいんです。ちょくちょくと3年前の感覚が戻ってきましたが、まだ3年前の自分には勝てていません。早く追いつきたいです。

これまでに勉強したこと、使えるもの
ここからは自分語りをやめて実際にやった勉強、使えるライブラリ等を列挙していきます。
勉強したこと
- 二分探索(lower_bound等も含む)
- DFS、BFS
- グラフ理論(ちょっとだけ)
- bit全探索
- 貪欲法
- 累積和(累積min/max, 累積GCD等も)
- しゃくとり法
- 簡単なDP
使えるデータ構造・ライブラリ
- vector
- tuple
- map
- set
- stack, queue等(deque, primary queueなども含む)
- <algorithm>
僕はこれくらいしかやってません。が、毎日AtCoderの問題を解くことを習慣にしています。多分これだけでも茶色には到達できると思います。
買った本
- プログラミングコンテストチャレンジブック(蟻本、バイブルとして)
- 競技プログラミングの鉄則(本戦で見た某双子強かったなぁ)
これから
どうやって茶色になったよりもほとんどが自己紹介みたいになってしまいましたが、茶色は基礎的なことを押さえてあとは数をこなせば多くの人が到達できると思います。僕自身は元々プログラミングがとても得意というわけではなく、単に高専や大学の授業等も含めてたくさんプログラムに触れる機会があったのだと思います。僕の現在の目標は、3年前の自分を超えて水色になることです。これからは院試やゼミ、卒業研究等で更に忙しくなると思いますが、一歩づつ、というより1ずつでもレートを温めていければいいなと思います!!!!
くだらない話にここまで付き合ってくださりありがとうございます!また次のコンテストで勝負しましょう!!!ライバルですね🔥