プログラミングコンテスト攻略のためのアルゴリズムとデータ構造 渡部 有隆
情報系の編入試験では、アルゴリズムの効率性を問う計算量の問題や、ソート・動的計画法といった典型的なアルゴリズムの実装が頻出です。しかし、参考書によっては理論的な説明だけに終わり、実際の問題でどう応用するかが曖昧なまま進むことがあります。本書は、プログラミングコンテストの攻略を目的とした構成であるため、編入試験で出題されるアルゴリズム問題へのアプローチ方法を実践的に学べます。
この本の位置づけ
本書は、基本的なプログラミング知識を持つ受験生向けです。配列やループ、関数といった言語の基礎は既習であることを前提としているため、プログラミング初心者向けではありません。編入試験の標準的な難易度に対応した内容です。
他の情報系参考書と比べると、本書はアルゴリズムの「効率性」と「実装方法」に特化しています。計算量の比較、複数のソートアルゴリズムの違い、動的計画法といった編入試験頻出の論点が、問題解法を中心に構成されています。一方、データベースやネットワークといった領域外の対策には向きません。
いつどのタイミングの編入受験生におすすめか
遅くとも編入試験の6~8か月前には導入を検討してください。アルゴリズムの理解には時間を要し、その後の過去問演習につながるため、準備期間の確保が重要です。
導入が早すぎる場合、基礎的なプログラミング文法がまだ定着していないと、本書の内容が難しく感じられ進まなくなる可能性があります。逆に導入が遅すぎると、過去問で実際の問題形式に慣れる時間が不足し、試験本番での応用に結びつきにくくなります。
ターゲット大学と対策できるテーマ
オンライン編入学院が保有する過去問データベースを分析し、本書の内容が実際の出題範囲と重なる大学・学部を抽出しました。「頻出テーマ」はその学部の過去問で繰り返し問われている論点のうち、本書で扱っているものです。
アルゴリズムとデータ構造
頻出テーマソートアルゴリズム、選択ソート、マージソート
本書の該当ページ選択ソート(p.65)、マージソート(p.152)、ソートアルゴリズム(p.53)
※志望校の最新の募集要項と過去問は必ずご自身でご確認ください。
使い方
本書は章立てに沿って順序通り学ぶことを勧めます。各アルゴリズムの説明を読んだ後、その実装例をコードで確認し、実際に手を動かして同じように書いてみてください。
学んだアルゴリズムごとに、過去問で類似の出題がないか確認することが効果的です。特に計算量やソートアルゴリズム、動的計画法といった本書の主要な論点は、複数の大学の過去問に繰り返し現れるため、各章を終えるたびに過去問演習に戻ることをお勧めします。
アルゴリズムの理屈を理解したら、制限時間を設けて過去問に取り組み、実装スピードと正確性の両立を目指してください。
注意点
本書の初版発行から一定の時間が経過しているため、プログラミング言語の仕様やコンテスト環境が当時と異なっている可能性があります。コード例の細部については、最新の言語仕様で動作確認してから活用してください。
本書はプログラミングコンテスト対策を主眼としているため、過度に高度なアルゴリズムも含まれます。編入試験では本書のすべての内容が必須ではありません。過去問分析から、自分の志望大学で頻出される論点を重点的に学ぶようにしてください。
また、本書はアルゴリズムの習得に特化しており、情報系編入試験で出題される情報理論や論理回路といった別の領域はカバーしていません。試験科目全体を確認し、他の参考書との組み合わせ計画を立てることをお勧めします。







