BLOG ブログ

  1. Home
  2. ブログ
  3. アルゴリズム問題整理テンプレートで思考の見える化!

アルゴリズム問題整理テンプレートで思考の見える化!

こんにちは。企画設計室 ソフトIT担当です。

現在、新卒向けの技術研修を担当しています。
教える立場になって改めて感じるのは、「人に伝えること」を通じて、自分自身も多くの学びや発見が得られるということです。

その中で、アルゴリズムの問題に取り組む前に問題を整理してもらうための「テンプレート」を作成しました。
今回はそのテンプレートと、具体的な使い方の例をご紹介します。

アルゴリズム問題整理テンプレート

1. この問題は何を求める問題ですか?
簡単に一文で要約してみましょう。

2. 入力・出力は何ですか?

入力(ある/ない)
出力(ある/ない)

3. 制約、守るべき条件などはありますか?
(例:入力を数字に限定、文字列の長さなど)

4. 処理の流れを例で確認しましょう。
入力例(     ) 出力例(     )
どうしてこの結果になるのか?

5.どんな順番で処理を進めるか、日本語で記述してみてください。
必要であればフローチャートの作成も推奨します。

・使用例として、最大値を返す関数 int maxof(int x, int y)を作る処理を考えてみましょう。

使用例

1. 要約
・入力されたx, yの最大値を求める問題。

2. 入力・出力
入力:数値x, y(2つ)
出力:x, yの最大値

3. 制約・条件
int maxof(int x, int y) という関数を使うこと

4. 処理の流れの例
入力例:x=2, y=3 → 出力例:3
理由:x < y なので、yが最大値になるから 5. 処理の手順 x,yの値を入力してもらう ↓ 関数maxofにx,yの値を渡し、大きい方を返す ↓ 帰ってきた値を出力する maxofの処理: x,yの値を比較する。 x>yの場合、xを返す。
そうでない場合、yを返す。

アルゴリズムが苦手な方も、まずはこのように問題を「言語化」することで、思考が整理され、コーディングがスムーズになるはずです。
私自身、教える中で「なんとなく書いていたアルゴリズム」を改めて言語化することで、自分の力にもなっていると実感しています。
そして複雑なプログラムを書く必要がある時ほど、処理を分解して整理することの重要性が高まります。
ぜひ、アルゴリズムに苦手意識のある方はもちろん、基本に立ち返りたい皆さんもこのテンプレートを使ってみてください!

詳細はこちら

PDFはこちら

一覧を見る