情報系高専生がatcoderで入緑する
情報系(J)高専生(K)なので嘘じゃないです。KujiraBoxといいます。約1年前からatcoderを初めて、ようやく入緑できたので、やってきたこととかを書きます。
KujiraBoxのプロフィール
最初のスペック
- パソコンを触り始めてから2年目(それまではファイル操作も出来なかった)
- javascriptを学び、if,for,関数が書ける
- 学校の授業でクイックソートくらいは習った
- 数学は得意な方
一応情報系の学生なので文系大学卒の新卒プログラマが入社して1年経ったくらいの知識はあったと思います。
苦労したこと
-
ぼっち
自分の周りで競技プログラミングをしている人がいなかったのでtwitterの界隈に入るまでは本当に修行でした。
特別な知識がなくて緑以上に行きたい人は必ずtwitterをやるべきです。(本当に) -
環境構築
自分はwindows+WSL2+Ubuntu+gccのC++でatcoderをしていて、恐らくこの環境がwindowsでC++を触るのには最適だと思っています。
というのもwindowsでC++を触るなら- Visual StudioのVisual C++
- windowsでネイティブに動くgccをインストールする
という選択肢もあるのですが、
VisualStudioのVisual C++はatcoderで使われているgccと一部勝手が違いますし、ネイティブ(wslを使わない)で動くgccはインストールが難しいしバグっぽい挙動があるし何より日本語が文字規格のズレで文字化けするのでおすすめしません。
これから始める人向けなんですがWSLがmicrosoft storeからインストールできるようになったのはつい最近(2023/2/20現在)で、まだまだ昔のインストール方法(黒い画面を叩く方法)を推すサイトが上にサジェストされるので、その情報は無視したほうが賢明です。
やってきたこと
暇なときにatcoder problemsで適当な問題を解いたり、コンテスト中に解けなかった問題をDまで埋めたりしてました。
あと鉄則本をやりました。まだ解き切ってませんけど、、
これはやらなかったことですが
自分と同じ時期に始めた人や同い年の人にレートで負けても、自分に才能がないと思わないことです。
この界隈には学歴モンスターが潜んでいることが多々あるので、プログラミングを始めた時期が全然違ったり、数学の習熟度が桁違いだったり、頭がパズルマシーンみたいな人にたまに出会います。なので比較はあまり意味を成しません。。
これまで使ったアルゴリズム・データ構造
- EDPCの序盤にあるDP
- DFS
- BFS
- 累積和
- 二分探索
- UnionFind
- map
- set・multiset
- queue・stack
- etc
上の知識は百必要なんですが、それ以外にもエラトステネスの篩や高速な素数判定法,gcd,lcm,ルジャンドルの定理など、数学に寄った知識も必要とされます。
個人的な感覚ですが、最初は問題をたくさん解いて、解説を読みながらアルゴリズムについての浅い理解を広く持ち、コンテスト中にアルゴリズムの存在に気付くことが大切ではないかと思います。
必要な知識が全て網羅されていて素晴らしいです。考察に詰まったときはこの本を俯瞰して当てはまるものがないか探したりもします。
最後に
テストが終わったので入水したい。