解決済み
基本情報技術者試験の表問題はアルゴリズム問題への練習として効果はありますか? アルゴリズムが難しすぎてとりあえず表計算を始めてみたのですが、勉強しやすく非常にすんなり頭に入ってきました。試験までまだ少し時間があるので表計算を満点とる勢いで勉強して、それからアルゴリズムを再度勉強するとまた違った見え方がするかなと思ったのですが、受験者、経験者の方から見て表計算の擬似言語ができてもアルゴリズム問題にはプラスにはならないでしょうか?
88閲覧
表計算の解法ノウハウはアルゴリズムに通用しませんね。表計算は国語能力というか、目的に合わせて処理を理解する能力が求められます。 一方で、アルゴリズムは目的から処理方法を推測する能力と、複雑な処理に数字を当てはめて流れを追うスキルが必要です。たとえば次の問題を見てましょう。 https://www.jitec.ipa.go.jp/1_13download/fe_kamoku_b_sample.pdf 「ある施設の入場料は,0歳から3歳までは100円,4歳から9歳までは300円,10歳以上は500円である。関数feeは,年齢を表す0以上の整数を引数として受け取り,入場料を返す。」 この問題文を読むと「ifをつかった条件分岐を何回か行うんだろうな」と予想が付きます。実際、次のようなプログラムが記載されています。 整数型: fee(整数型: age) 整数型: ret if (age が3 以下) ret←100 elseif (ここに何がはいるか考える設問です) ret←300 else ret←500 endif return ret さて、素直に問題文を読むと(ageが4以上かつ9以下)という条件を想像してしまいます。これでも合っているのですが、実は解答で選べる選択肢にはありません。正解は(ageが9以下)です。 feeという変数は「整数型」だと記載されています。つまり3.7とかは入らないわけです。retがif (age が3 以下)の条件に引っかからなかったなら、retは4以上であることが確定します。だから正解となる選択肢では「ageが4以上」という条件が入っていないわけです。 アルゴリズムでは効率的にデータを処理する先人のテクニックが頻出します。それを雰囲気だけ知っておいて、本番でなんとか理解できるように頑張る試験です。 とはいえ、凡人には限界があります。上記でつかったサンプル問題と同じ資料の別問題では「疎行列の格納に適したデータ構造に変換する」プログラムが扱われています。初見ですぐ理解できるはずがありません。 こうした難しい未知の問題への対象法が「適当に数字を入れてプログラムがどういう処理をするのか1行ずつ追っていく」トレース手法です。「施設の入場料」だって、全体を理解していなくとも、retに3・4・9・10を当てはめていけば正答がわかります。 アルゴリズム問題が得意な人でも「わけわからん問題だったがトレースして正解がどの選択肢かはわかった」という状況が普通にあります。そもそも理解しないほうが早く解けることもあります。 youtubeにはアルゴリズム過去問の解説動画がいくつかあるので、実際の問題を印刷して手元で確認しながら視聴するといいでしょう。
< 質問に関する求人 >
基本情報技術(東京都)この条件の求人をもっと見る
求人の検索結果を見る
< いつもと違うしごとも見てみませんか? >
覆面調査に関する求人(東京都)この条件の求人をもっと見る