アルゴリズムって具体的にどう勉強したらいいの?」という疑問に答えます。アルゴリズムは過去問や参考書だけ読んで理解しようと思っても難しいです。言語はなんでもいいのでまずはプログラムを実際に作ってみましょう。本記事ではPythonを例にしてアルゴリズムの問題を解く例を紹介します。具体的には以下の通りです。・変数・関数の使い方いずれもそれほど難しいものではありません。参考書や公式ドキュメントを読みつつプログラムをいくつか作ればすぐに理解できると思います。特定の条件に当てはまった場合の処理です。if・elseif・elseの使い方を覚えればOK。指定した回数同じ処理を繰り返す構文です。for文の使い方について理解しておきましょう。代入・定義・呼び出し方・リターン値などについて理解しておけばOKです。過去問の実践手順について説明します。・使用するアルゴリズム・プログラムを実際に動かしてみよう・実際に問題を解くときは?の順に説明します。問8の「GeneralBitMask」というアルゴリズムです。「問題の詳細はこちら」このアルゴリズムをPythonにおこしていきます。・論理和ってなに?・Pythonで論理シフトってどうやるの?といった疑問が出てくると思います。疑問が出てきた場合はすぐにググって調べましょう。論理シフト」でググる記述例は以下の通り。alphabet_list[alphabet]記述はできるだけ問題文に合わせる形で作っています。・文字列のインデックスは、Pythonの場合0、問題文の場合1で始まるため、ソースコード中には以下の処理を追加しています。patpatの’0ABCD’のようになります。‘0’の部分は参照されません。プログラムを実際に動かしてみよう早速プログラムを動かしてみましょう。正解の選択肢だけでなく不正解の選択肢も動かしてみます。いえ空欄が2つあるのでb,cを同時に試そうと思うとかなりパターンが多くなります。片方に正解を入れて1問ずつ実行しましょう。「正解をいれてしまったら解く力がつかないんじゃないか」と思うかもしれませんが、最初は問題を解くことよりも「選択肢の違いによって結果がどう変わるのか」という点を理解することが大事です。問題を解く力はその後つけても遅くはありません。Cを埋めてのBの選択肢をそれぞれ実行します。ア:”0′′Bイ:”1′′Bウ:”1′′BをPatLenビットだけ論理左シフトした値エ:”1′′BをPatLen-1ビットだけ論理左シフトした値オ:”1111111111111111′′B実行結果は以下の通り。問題文中に「ACABAB」で実行した場合のA、C、Dの値が出ているのでこれと比較しましょう。イの場合、Aは合っていますがB以降が違います。ウ〜オはAからして違います。よって「ア」が正解です。次にBを埋めて実行します。ア:”1′′Bを(i-1)ビットだけ論理左シフトした値イ:”1′′Bをiビットだけ論理左シフトした値ウ:”1′′BをPatLen-1ビットだけ論理左シフトした値エ:”1′′BをPatLenビットだけ論理左シフトした値オ:”1′′B実行例は以下の通りです。ア0b10101,0b101000,0b10,0b0・・・・イ0b101010,0b1010000,0b100,0b0・・・・ウ0b100000,0b100000,0b100000,0b0・・・・エ0b1000000,0b1000000,0b1000000,0b0・・・・オ0b1,0b1,0b1,0b0・・・・こちらも問題文と比較すれば一目瞭然でアが正しい値です。試験で問題を解くときは?情報処理試験ではパソコンどころかノートもスマホも使えないので机上で追うしかありません。複数の空欄がある場合少なくとも一つは問題文中にヒントがあります。上記問題の場合、ありがたいことに問題文中に「”0′′Bで初期化」と書いてあるので「ア」確定ですね。上記のように試験の場合は問題文を読んで選択肢にあたりをつけてからトレースするのがおすすめです。問題文を読んだだけで回答が全てわかった場合でも確認のためトレースはしておきましょう。終わりにアルゴリズムは参考書を読んだり過去問を解いたりするだけで理解するのは難しいです。言語は何でも良いので作って動かしてみましょう。今回はPythonで作成する例を紹介しました。Pythonは初心者でも取り組みやすいので、これからアルゴリズムの勉強を始める方はPythonで始めるのがおすすめです。こちらの記事も読まれていますこの記事を書いている人miyabikno住んでいるところ:神奈川県。SIer中小企業(C,VBA):8年(うち5年QA)。Web系ベンチャー(PHP,Javascript,Python):2年。@miyabiknoSIer中小企業(C,VBA):8年(うち5年QA)。Web系ベンチャー(PHP,Javascript,Python):2年。現在はブログをメインに活動しています。みやびのどっとぴーわい。