競プロ入門に良さそうな本とかサイト
昨年~今年手に取った本とかで競プロ入門に良さげなものを列挙してみたnixii.icon
碧黴くんの「銀髪赤眼の後輩と学ぶ」シリーズ
https://gyazo.com/1958136cb786943779b466b43f80a045
ラノベ読んでる感覚で、説明・図解も丁寧なのでとても分かり易かった:)
後半はダイクストラ法とか出てきて難しめ.
掲載コードはC++.icon
第二巻
一巻の後半もそうだが本当の初心者には厳しそう
初心者の人にはLeetCodeとかの方が(英語okなら)解説もかなり充実していてとっつきやすそう
以下は第二巻で使われるマクロ
code:macro.cpp
include <bits/stdc++.h>
#define all(v) (v).begin(),(v).end() using namespace std;
using ll = long long;
// 型に合わせた値 2倍してもオーバーフローしないようにする
const int INF = 1e9;
蟻本
https://gyazo.com/1ead560e7963d32e536273db432f86b6
よくみると碧黴くんの本の表紙にも描いてあるやつ
たしかこれもコードはC++.icon
序盤しかまだ読めてないが分かりやすい(後半は結構難しい内容を扱ってた)
アルゴリズムとデータ構造
https://gyazo.com/508ebdb8ed08b37905db74c0cf4dc8d6
蟻本と並んでわりと有名
本屋でパラパラ見た感じ蟻本より内容が易しそうな印象だった(読んではない)nixii.icon
世界で闘うプログラミング力を鍛える本
https://gyazo.com/5583e190c166d20e47d35c6a95c407b8
確かコードはJava.iconだった気がする
計算量まわりの説明がめちゃ丁寧で勉強になる
面接対策にマルっと1章割いたり、純粋に競プロ向けというよりかコーディング面接本という雰囲気
アルゴリズム図鑑
https://gyazo.com/9ed2ef90539638ddc197ae8202eef581
iOSと、たぶんAndroid版アプリもある(のかな?)
nixii.iconはiPadで見てる
時々あれどんなヤツだったっけ、とふと思った時に見てる
独習C++ 新版
https://gyazo.com/8e26bce02c8fb0b2e68250f6e5e2dbac
今年始めに通読した(分厚かった)nixii.icon
あんまり型とか気にしなくていい動的型付言語を普段のお仕事では扱ってるので、データ型やメモリ, 参照周りを何かの言語で体系だてて知りたいなと思ったのがキッカケ
競プロで他の人のコード読むときC++.icon多いし滞りなく読みたいってのもあった
わかるけど、もし競技プログラミングにハマったら、だんだん勝手に読めるようになるかなあって思って新しい言語に触らないpencilrocketman.icon
最初のうちは難しい文法登場しないだろうし
競技プログラミングにハマったら、だんだん勝手に読めるようになる
これはあるnixii.icon
誤字, 誤植がかなり多かったが、内容を理解してればすぐ間違いに気づくのがほとんど。
むしろ誤植が良いテストになってる箇所もあった気がする
個人的には13章の文字列の説明が結構分かりやすい(文字コード周りの理解が捗った)
みんなのデータ構造
こんなのが無料で読めるんだからすごいことだ
競プロ系サイト
AtCoder
yukicoder
TopCoder
Leetcode
英語OKなら学習者にとってめちゃ良いサービス
解説が分かりやすい, コンテンツも結構沢山ある
これ結構スタンダードっぽいねpencilrocketman.icon
入社試験の過去問が載っているのでちょっとどうかと思うのですが、多くの人が面接対策のために利用しているサイトであり、平等に戦うためには自分も教材として触れておかざるを得ないと思いました。Googleの過去問を解く模擬試験では10段階で8.41という成績であり、Google社員の成績の中央値が6.97だと表示されていたので、コーディングに関してはかなり良い成績なのかなと思いました。LeetCodeの問題は200問くらい解きました。
4月から毎日1問チャレンジ問題的なのが出題されてる
CodeWarsCodewars.icon
codewarsも使ってみて良いなと思ったnixii.icon
(自分含めて初学者は特に)ランクがすぐ上がってく感じがあるのでモチベが維持しやすそう