基本情報 アルゴリズムを解くための”コツ”についてPart.2

アルゴリズム
スポンサーリンク

前回から引き続き、ご覧いただきありがとうございます。

基本情報 アルゴリズムを解くための"コツ"についてPart.1
こちらでは基本情報技術者試験のアルゴリズムを解くためのコツや問題の種類について解説しています。問題の解き方からちょっとしたコツまで、是非とも試験対策に活用してください。

こちらでは「基本情報 アルゴリズムを解くための”コツ”について」のPart.2になります。

では問題を解くためのコツについて解説していきましょう。

・始めに問題の全体像をチェックする

問題の解き方も種類も分かったし、早速問題を解いてみよう!

ちょっと待ってください。

アルゴリズムの問題を解く前に、是非とも以下のポイントをチェックしてください。

  • プログラムの概要
  • 問題の長さ
  • プログラムの長さ
  • プログラムの説明図(掲載があれば)

人によっては、

こんな所チェックして何になるの?

と思うかも知れませんが、問題の全体像を把握すると、

  • 問題をすべて解くまでの時間をザックリと把握できる
  • 問題をどのくらい解けばいいのか分かるので心の余裕を生む

といった効果があります。

またアルゴリズムだけでなく、問題文が長い午後試験全般で使えるテクニックとも言えるため是非とも活用してみてください。

シロ
シロ

アルゴリズムの問題は難しくて時間が掛かるからね。だからこそ問題の全体像をチェックするといった概要を把握する作業が重要になるよ

チョコ
チョコ

こういうポイントが意外に試験の点数を左右するから注意が必要だな

シロ
シロ

アルゴリズムの問題を解くことも大事だけど、試験時間を考慮として問題を解かないと、大変なことになるから注意してね

スポンサーリンク

・問題文とプログラムを関連付ける

問題文とプログラムを関連付ける作業は非常に大事です。

プログラムと問題文がどの部分にリンクしているかというポイントが分かれば、以下のような利点に繋がります。

  • プログラムの読み間違えが減る
  • プログラムがスムーズに読める
  • 試験時間の節約になる

またアルゴリズムで出題される問題の中には、問題文をそのままプログラムに当てはめるだけで、解けるような問題もあります。

例えば以下の問題。

平成29年秋期 午後試験 問8-1
平成29年秋期 午後試験 問8-2
平成29年秋期 午後試験 問8-3
平成29年秋期 午後試験 問8-4

出典:平成29年秋期 午後試験 問8より抜粋

上記の問題は、文字列の誤りをチェックする検査文字を生成するプログラムですが、「プログラムの説明」としている文章の中に、空白「b」の解答が丸ごと掲載してあります。

以上のようにプログラムと説明文を関連付ければ、素早く解ける問題が出題される可能性を頭に入れておいてください。

チョコ
チョコ

問題文とプログラムを繋げる作業は、アルゴリズムだけに限った話じゃない

シロ
シロ

プログラミング言語や他の長文問題でも使う話だから、絶対にマスターするようにしてね

チョコ
チョコ

ちなみに以下のページでは、午後試験でよく出題される、長文問題を上手く解くためのコツを紹介している

404 NOT FOUND | 初心者も未経験者も。基本情報技術者試験 ~合格への道~
統計と傾向、ちょっとしたコツで基本情報技術者試験を攻略。
シロ
シロ

長文問題に苦手意識がある人は、是非ともチェックしてみてね

・理解しやすい変数から読み取る

プログラムで使われている変数を理解するのは、問題を解くのに重要な要素です。

ただプログラムで使われている変数を読み取る際には、
理解しやすい変数から読み取るといった基本的な流れを忘れないようにしましょう。

ちなみに簡単な変数から難しい処理に利用している変数へ順を追って変数を理解すると、
プログラムの処理が読みやすくなります

また理解しやすい変数を把握すると、
理解しにくい難しい変数を理解するためのヒントになるため是非とも覚えておいてください。

ところで理解しやすい変数の見分け方についてですが、理解しやすい変数は、

  • 変数の使用回数が少ない
  • 単純な計算でのみ利用されている
  • 変数名が分かりやすい

といった特徴があります。

プログラムを読み慣れるまでは、見分けがつきにくいと思いますが、徐々に見分けがつくようになるため、根気強く勉強を続けてみてください。

シロ
シロ

上記の内容を読んだ人の中には、
「要点になる変数だけ読んだら良いじゃん」と思う人もいるかも知れないね。

チョコ
チョコ

ただアルゴリズムの場合、全ての変数を読まされるパターンが多いから、結局読むのが早いか遅いかの違いにしかならないぞ

シロ
シロ

ちなみに簡単な変数が、問題のカギを握っているパターンもあるから注意してね

スポンサーリンク

・理解した内容をメモしておく

アルゴリズムの問題を解く上で「理解した内容をメモしておく」という方法はかなり重要です。

というのもアルゴリズムという分野では、プログラムの処理や変数、配列の要素といった内容を逐一追いかける必要があるからです。

またアルゴリズムの場合、問題文に選択肢、プログラムとあっちこっちに目を配るため

この変数、どんな内容だったっけ?・・・

なんて状況が発生しやすい分野でもあります。

そのためアルゴリズムという分野では、
理解した内容や要素があれば、事細かにメモをしておきましょう。

ちなみにアルゴリズムの問題でメモを取っておいた方が良い内容は、

  • 変数の内容
  • 配列の内容
  • ループの回数
  • プログラムの処理がどのように移動するか?(矢印を書いてみる)

といった内容です。

またループによって変数の内容が更新された場合は、メモした内容も更新するのを忘れないでください。

シロ
シロ

アルゴリズムの問題を素早く解くためには、メモを取るという方法が非常に重要だよ

チョコ
チョコ

プログラムに使われている変数は、基本的に英単語を組み合わせたような物が多いからな。メモをしておかないと、内容を忘れてしまうぞ

シロ
シロ

だからこそアルゴリズムのプログラム内で分かったことがあったら、事細かにメモをする癖をつけておいてね

・プログラムをイメージする(流れ図かイラストを作成)

アルゴリズムに書かれているプログラムが全く理解できない!

まずはそんな状況でも焦らず、プログラムを流れ図やイラストに書き起こしてイメージしてください。

プログラムの処理をイメージできるようになると、
問題が理解しやすく、解け易くなるといったメリットがあるため、問題を解く際には必ず意識するようにしてください。

またプログラムにおいて使われている変数や配列を逐一書き出していくと、プログラムがどのような処理をしているか、
処理をイメージしやすくなるといったメリットもあるため覚えておきましょう。

またプログラムのイメージに時間を掛けないために、

  • プログラムをスムーズに読む練習
  • 試験時間を意識した勉強を心がける

といったポイントを普段の勉強から重視してください。

チョコ
チョコ

フローチャートを書くという方法は面倒に感じるんだよな。実際に丁寧に書いてみると結構時間が掛かるし・・・

シロ
シロ

そう思うのであれば、フローチャートを簡略化して書いてみると良いよ。

チョコ
チョコ

データと処理を同じ記号で書いてしまうとか、分岐の処理だけを抜粋してみるとか良さそうだな

シロ
シロ

あとはプログラムへの意識の置き方を、データの定義とかは簡単に読む、処理の部分は重点的に読む、といった方法も問題を効率的に解くためには重要だね。

スポンサーリンク

・配列の要素番号と内容に気をつける

アルゴリズムで題材になるプログラムにおいて、最も注意を払うべき存在、それは配列です。

配列は、基本情報技術者試験で出題されるレベルのプログラムならば、ほぼ間違いなくプログラムの核となる要素です。

過去に出題されたアルゴリズムの問題でも、
配列が問題になったパターンは物凄く多いため、最も警戒すべき内容と言えるでしょう。

ちなみに配列において注意すべきは、

  • 配列の要素番号
  • 配列の内容
  • 配列の次元数

といったポイントです。

配列を利用しているプログラムにおいては、
配列の要素番号を指し示す変数も問題になりやすいため必ずマークしておいてください。

また配列の問題を効率よく確実に解くためには、配列を書き出すのが一番です。

配列を題材とした問題で解答に詰まったら、まずは配列の内容と要素番号を書き出して、データを当てはめてみてください。

慣れてしまえば確実性の高い方法として、アルゴリズムの問題を解く際の強力な武器となってくれるでしょう。

シロ
シロ

今回アルゴリズムの配列において、気をつけるべき点を挙げたけど、個人的には配列要素の開始番号が、要注意ポイントだと思っているよ

チョコ
チョコ

なんで開始番号なんだ?

シロ
シロ

配列の要素番号の開始番号って、基本的には”0”が設定されるんだけど、試験に出題されるプログラムの場合、”1”が設定されるパターンがあるんだよ

チョコ
チョコ

なるほど。

シロ
シロ

配列においては、要素番号が1つ違うと処理が大きく違ってくる。だからこそ要素番号の開始番号については注意した方が良いよ

・基本的にアルゴリズムの処理は難しくはない

見出しでも書かれている通り、
アルゴリズムで使われている処理って、実は簡単」なんです。

実際の所、アルゴリズムのプログラムを1つ1つ分解していくと、
難しいロジックや処理は、ほぼありません

そのためアルゴリズムの勉強を始めたばかりの人でも、時間を掛ければアルゴリズムの問題を解けるようになっています。

だからこそ肝に銘じておいてください。

アルゴリズムという分野は、勉強をキッチリやってきた人ならば、問題は解けます。

だから問題を見た瞬間に、

難しそうだからアルゴリズムは諦めよう・・・

なんて考えを持ってはいけません。

むしろ

問題を読んでみれば、意外に簡単だろう!

ぐらいに思って、ドーンと構えて試験に挑んでください。

シロ
シロ

アルゴリズムにおける最大の敵は、自分自身の心の弱さだと僕は思うよ

チョコ
チョコ

どうしたんだ急にw

シロ
シロ

いやアルゴリズムの問題って、問題をじっくり読み込んでみると、難しいことはやっていない。解答を見てみたら、なんだこんな簡単なのか! なんて状況が多いからね

チョコ
チョコ

なるほどな。俺もアルゴリズムの問題を解いてみると、よくある状況だ

シロ
シロ

だからこそアルゴリズムでは、心の強さっていう要素が重要なんだよ。あとは勉強を続けるのも難しい分野だからね

スポンサーリンク

まとめ

今回はアルゴリズムの問題を解くためのコツについて解説をしました。

  • 始めに問題の全体像をチェックする
  • 問題文とプログラムを関連付ける
  • 理解しやすい変数から読み取る
  • 理解した内容をメモしておく
  • プログラムをイメージする(流れ図かイラストを作成)
  • 配列の要素番号と内容に気をつける
  • アルゴリズムで使われている処理は、実は簡単

またアルゴリズムの問題を解く際には、以下のような手順がベースとなるでしょう。

  1. 始めに問題の全体像をチェックする
  2. 問題文とプログラムを関連付ける
  3. 変数を読み取る際は簡単な変数から読み取る
  4. 理解した内容をメモしておく
    プログラムをイメージする(流れ図かイラストを作成)

ちなみに今回紹介したアルゴリズムを解くためのコツは、アルゴリズムの基礎知識や勉強があっての方法です。

だからこそ普段からアルゴリズムの勉強を欠かさずにしてください。

ちなみに以下のページでは、アルゴリズムを解くための勉強について解説しています。

基本情報技術者試験 アルゴリズムを解くための"勉強"について
こちらではアルゴリズムの問題を解くために必要な準備について解説しています。問題自体が難しく、基本情報技術者試験の鬼門とされるアルゴリズムを解くためには、プログラムをどれだけ正しく、たくさん読んできたかというポイントが重要になるでしょう。

アルゴリズムの勉強法をどうしたら良いのか分からない人、アルゴリズムの勉強に苦戦している人は、是非ともチェックしてみてください。

またアルゴリズムの勉強には、以下の解説が充実している参考書を利用すると、問題が解けない時の心強い味方になってくれます。

レビュー『うかる! 基本情報技術者 [午後・アルゴリズム編]』
『うかる! 基本情報技術者 [午後・アルゴリズム編]』のレビューと評価になります。イラストやフローチャートによる解説が多く、初心者でも分かりやすいのが特長です。

アルゴリズムの勉強において、

勉強を効率的に進めたいけど、どんな参考書を選んだら良いか分からない・・・

なんて悩みを持っている人におススメできる参考書です。

コメント