20230517基本情報技術者試験的な備忘録(アルゴリズム問題の比較)
アルゴリズム素人です。
基本情報技術者試験
以下違いだらけです。自分用メモ。(解説ではありません。)
今回の参考問題
・サンプル問題 科目B(6問セットの問3)
・平成20年春午後 問4
過去問道場様とIPA様に感謝いたします。
(著作権等問題があれば削除いたします。)
先日以前のブログで(アルゴリズム 単方向リストの問題)として、
サンプル問題 科目B(6問セットの問3)
<プログラム2>
〇append(文字型:qVal)
を取り上げた。
で、科目B対策として、過去問の「平成20年春午後 問4」を見ていて、少し思ったのでメモ。
(そんなことより問題解けという気もしますが・・・。)
********************************************
まず、サンプル問題 科目B(6問セットの問3)
次に、平成20年春午後 問4
少し長いですが、副プログラムMakeListの方を見る・・・。
(3)MakeListの説明を見ると、「引数の文字列を値とする要素を作成し、リストの最後に追加する」とある。
これは、サンプル問題のメソッド「append」と同じじゃないかと思う・・・。
それが早合点だった。
簡単に言うと、appendの方もMakeListの方も「〇〇.next」とか出てくるが、
MakeListの方は、ListSizeを定数として持っていたりしている。
appendの方は、whileで〇〇.nextが未定義かどうかで、最終を見つけたりしている。
ListHeadとFirstも使い方が違う(Firstは値はない)
だから、同じような働きでも、プログラムはかなり異なる。
注意しないと。
平成20年春午後の方が、問題が長いが、図が多いため、理解しやすい気がする。
問題後半の、OrganizingSeachも、短方向リストの順番の入れ替えで、アルゴリズムの基本的な問題の気がします。
(難しいけど理解はしやすいかな)
その他、大域が出たら、オブジェクト指向のクラスと考える。
「〇(マル)ほにゃらら」は、def メソッド。
メンバ変数は、ローカル(インスタンス変数)と異なる。
その他、プロパティも出るだろう。
具体的に置き換えた方が考えやすいか。