基本情報技術者試験の午後の難関かつ必須の問題である「データ構造とアルゴリズム」の問題を自分なりに考え方て解き方を解説しています。
どの選択肢が答えかは分かるけどそれを導くための考え方が分からない時にぜひ参考にしてください。
New!令和元年秋期のアルゴリズム問題解き方記事をアップしました!











アルゴリズム問題の解き方については下記でも解説しています。

C言後の問題の解説については↓から

アルゴリズム問題の対策(PR)
過去問を解いてみて感触はいかがだったでしょうか?
全く分からなかった...という方もいらっしゃるかもしれません。はっきりいってアルゴリズム問題は、特に慣れないと難易度は高いです。
なので、こういった方にはもっと "簡単なアルゴリズム問題を解いて慣れていく" ことをオススメします。で、この簡単なアルゴリズム問題を解くのにオススメの本が下記の うかる! 基本情報技術者 [午後・アルゴリズム編] です。
オススメする理由は、特に本の前半部分で難易度の低いアルゴリズムの紹介や解説が行われているところです。こういったアルゴリズムの動作などを実際にトレースして追ってみたりすることで簡単な問題からアルゴリズム問題に慣れていくことができます。
また、「アルゴリズムとは?」といったアルゴリズム入門から解説してくれているので、プログラミングをやったことない方にも親切な内容になっています。
アルゴリズム問題に全く手がつかないというような方は、まずは上記のような本でアルゴリズムに慣れるのがオススメです。
慣れてきたら、あとは実際の過去問を解いて "さらに考える力を養う" & "実際のアルゴリズム問題に慣れる" のが良いと思います。
私のサイトでも過去問の解説をしていますので是非参考にしてください。私の解説だけでなく、他の人の解説も参考にしたいような場合には、下記のような過去問の参考書もオススメです(アルゴリズム問題だけでなく、全問題の解説も充実しています)。
こんばんは、だえうさん。 勉強していて不安になることとかありますか?私自身も勉強の仕方が悪いのですが、アルゴリズムに限らず、過去の午後問題を何回もすると、答えを覚えてしまって、結局、午後の問題を過去問を解いても、何をやっているのかわからない時があります。間違った勉強であるのは、分かるのですが、私どうすればいいのですか?教えてください。
受けたけど、収穫はあったのでしょうか?
まきさん
コメントありがとうございます。
「何をやっているのかわからない」というのはまずいと思います。勉強に不安であれば、やり方を変えてみる方が良いと思います。
まだ試験まで時間はありますので、データ構造とアルゴリズム関連(ソートやリスト構造など)のプログラムを自分でプログラミングしてみるのはどうでしょう。プログラムやアルゴリズム問題の対策として有効だと思いますし、今までと違った勉強になるので気分転換にもなると思います。
また、新しい参考書を買って、新しい気分で勉強し直すのも良いと思います。
勉強を一旦やめてしまうのも良いかもしれません。試験期間までたっぷりありますので焦る必要はないです。休息も大事ですよ。とりあえず気分転換しましょう!
一応過去問についても書いておくと、特に午後問題に関しては、なぜその答えになるかをしっかり自分で考える事が重要だと思っています。
たとえ答えを知っていたとしても、どう考えればその答えにたどり着けるかを自分で考えるようにしてやれば、試験を解く力はつくと思います。
まずは解説などを読まずに、なぜその答えになるのかを考えてみてはいかがでしょうか?時間はいくらかかっても良いです。
下記に過去問が掲載されていますので、やったことのない回・あまり覚えていない回の問題を解いてみると良いと思います。
https://www.jitec.ipa.go.jp/1_04hanni_sukiru/_index_mondai.html
どう考えて答えを導いたかをコメントで書いていただければ(書くのは大変かもしれませんが…)、私の方でその考え方で良いかどうかをアドバイスすることもできます。
ありがとうございます。また詳しいことは、後日コメントします。
ただただ資格が欲しいというだけの思いで、無理やり頭でっかちに詰め込んで、自分自身の中で落とし込まずに問題を解いていたのかもしれません。
まきさん
時間はたっぷりありますので、焦らず、じっくり考えるようにして取り組むのが、時間はかかるかもしれませんが近道だと思います!
詰め込むのは試験直前でいいと思います。
気分転換しながら気長にやっていきましょう!