付録C: 次のステップ — 緑から水色へ、そして面接本番へ
この章の目次開く
本書で身につけた道具は、paiza B〜S・AtCoder灰〜緑・面接の標準問題をカバーしています。この付録では、その先の道を3方向に分けて案内します。
方向1: AtCoder緑 → 水色
水色(上位約4%)に上がるには、本書の道具に加えて次のアルゴリズム群が必要になります。
| 分野 | 内容 | 本書からの接続 |
|---|---|---|
| DPの発展 | 桁DP・区間DP・bitDP | 第10章の「定義→遷移→初期値」がそのまま通用 |
| セグメント木 | 区間の最大/合計を更新つきでO(log N) | 累積和(第3章)の上位互換 |
| 数論 | 素数篩・繰り返し二乗法・逆元 | 剰余計算(付録A)の延長 |
| LISのO(N log N)化 | lowerBoundとDPの合わせ技 | 第8章+第10章の融合問題 |
| ワーシャルフロイド | 全点対最短路O(N³) | ダイクストラ(第11章)の兄弟 |
学習の主軸は「新しい知識」よりも過去問の量に移ります。目安として、ABCのC〜D問題を100問解くころには緑後半〜水色が見えてきます。
学習者100問かぁ。急がず、毎週のABCに出ながらコツコツやる感じかな。
それが一番の王道です。コンテスト中に解けなかった問題を**その週のうちに復習する(upsolve)**サイクルが、最も効率の良い成長パターンだと多くの上位勢が口を揃えます。
方向2: paiza Sランクの安定化
paizaのA〜Sランク問題は、アルゴリズムの難度そのものより実装の重さが壁になります。
- 入力の仕様が複雑(複数種類のクエリ、条件分岐の多いシミュレーション)
- 「1マスずつ処理する」「状態を正確に更新する」丁寧な実装力が問われる
対策は本書の道具+2つの習慣です。
- 仕様を紙に書き出してから実装する — 問題文の条件を箇条書きに変換し、実装後にチェックリストとして使う
- 関数に分割する —
parseInput()/simulate()/output()と分けるだけで、バグの居場所が特定しやすくなる
Sランクは転職市場で強いシグナルになります。取得したらプロフィールに堂々と書きましょう。
方向3: コーディング面接の本番対策
面接は「解く」に加えて「伝える」試験です。本書の内容を面接用に運用する方法をまとめます。
面接の標準的な流れ(45〜60分)
1. 問題提示 → まず質問する(入力の範囲は?重複は?空のケースは?)
2. 方針を口頭で説明 → 面接官の合意を得てから書き始める
3. 実装 → 書きながら考えを実況する
4. テスト → 自分から端のケースを挙げて検証する
5. 改善 → 「計算量をさらに落とせるか」の議論
評価されるポイント
| 評価軸 | 本書の対応 |
|---|---|
| 問題の理解と質問力 | 第12章の5ステップ(制約→要約) |
| 計算量の意識 | 第2章の見積もり術をそのまま口に出す |
| 解法の説明力 | 「全探索→改善」の語り(第7章) |
| コードの正確さ | スニペットの手癖化(付録B) |
| テストの姿勢 | 「空・1個・重複・最大」の4点セットを自分から挙げる |

模擬面接の練習相手がいない場合は、声に出しながら1人で解くだけでも効果があります。録音して聞き返すと、説明の詰まりどころが客観視できます。
継続学習のリソース
- AtCoder Problems(非公式過去問サイト) — 難易度別に過去問を消化するならここ。解いた問題の記録も付く
- AtCoder公式の精選過去問集 — 「ABS(AtCoder Beginners Selection)」は最初の10問として最適
- paizaのスキルチェック — 週1問のペースメーカーとして。ランクは何度でも挑戦可能
- 本書の模擬テスト(第13章) — 3か月後に解き直すと成長が数値で見える
理論の背景を深めたくなったら『コンピュータサイエンスの基礎』へ、TypeScriptの言語仕様を固めたくなったら『TypeScript入門』へ——サイト内の他の書籍も併走できます。
最後に
メンターコーディングテストの力は、裏切らない資産です。転職の選択肢が広がるだけでなく、日々の実装で「この処理、O(N²)になってないか?」と気づける目は、現場でそのまま品質になります。ここまで完走したあなたなら、あとは続けるだけ。健闘を祈ります!
- 緑→水色は「新知識2割、過去問8割」。週次ABC参加とupsolveの習慣が王道
- paiza Sは実装力の勝負。仕様の箇条書き化と関数分割で事故を減らす
- 面接は「伝える」試験。5ステップの実況と、自分から挙げるテストケースが評価される
- 3か月後に第13章を解き直して、成長を確かめよう
コーディングテスト、突破できるようになりましたか?