【基本情報技術者試験】科目B公開問題ゆるゆる解説(2023年7月6日IPA公開)
ฝัง
- เผยแพร่เมื่อ 1 ต.ค. 2024
- スピード合格を支援する1回完結型セミナー『基本情報技術者試験7つの超速合格術』
masuyaplus.com...
この動画は、2023年7月6日にIPAのサイトに公開された基本情報技術者試験科目Bの公開問題全6問を解説します。
訂正:[7:58] 誤「iまで増やしても」→正「i-1まで増やしても」
---関連動画-----------------------------------------------------------------------
【基本情報技術者試験科目B】サンプル問題全20問完全解説~Vol.1(問1~問6)
• 【基本情報技術者試験科目B】サンプル問題全2...
【基本情報技術者試験科目B】サンプル問題全20問完全解説~Vol.2(問7~問12)
• 【基本情報技術者試験科目B】サンプル問題全2...
【基本情報技術者試験科目B】サンプル問題全20問完全解説~Vol.3(問13~問16)
• 【基本情報技術者試験科目B】サンプル問題全2...
【基本情報技術者試験科目B】サンプル問題全20問完全解説~Vol.4(問17~問20)
• 【基本情報技術者試験科目B】サンプル問題全2...
【改訂基本情報技術者試験】科目Bサンプル問題 超ゆるゆる解説(2022年4月25日公開全6問解説)
• 【基本情報技術者試験】科目Bサンプル問題 超...
---------------------------------------------------------------------------------------------
株式会社マスヤプラス 尖ったセミナーを真面目にやる会社
masuyaplus.com/
#基本情報技術者試験 #科目B #公開問題
過去問道場などにある午後問題のデータ構造及びアルゴリズムを科目b対策で勉強しているのですが、難しくてさっぱり分かりません。
この動画くらいのレベルならばできるのですが、基本情報技術者試験の科目bのレベルはどの程度のレベルなのでしょうか?
難易度だけで言えば現在の科目Bは旧午後試験よりも低いですが、その分時間がシビアです。
科目Bは時間かけさえすければ解ける問題が大半ですが、20問もあるとほぼ間違いなくハマる問題が現るので、全問正解する必要はないと割り切り、そこをうまくスルーして解ける問題を確実に解いていくのがポイントかと思います。
18:47
a直前のif分岐でdataの値を入れ替えなかったから正解が初期値のままだったということで正しいですかね
ほぼその通りの解釈でよろしいかと思います。あとは言い方の問題になりますが、正確には「if条件の[繰り返し処理を終了する]が実行されたことによりwhileループを脱したため、dataの入れ替え処理が実行されなかった」ということになります✋
解説動画探してたので助かります!
こちらこそご視聴いただきありがとうございます。
そう言っていただけるとモチベーション上がります😊
問1で「jを2からiまででもいいんじゃない?」と言っていますが、2からi-1ですよね?
iまで増やすと自明な約数を含んでしまい、全てがfalseになってしまうので。
ご指摘ありがとうございます。気軽に言ってしまいましたが、確かにその通りですね😅
説明欄にて訂正させていただきました。
問4の
hashArray←(5個の−1)
が初期化である意味がわかりません。
どういうことですか?
プログラム冒頭で定義されいてるhashArrayは空っぽの状態なので、プログラムを実行する際には具体的な配列の数と数値をセットする必要があり、それを動画では「初期化」と言っています。「値のセット」とも言えます。
返信遅れました。説明ありがとうございます!
スピードを上げるには、下記2つの方法のどちらを優先して訓練すれば良いでしょうか?
※試験まで残り1週間です。
①トレースの速度を上げる
②トレースをせずに問題文から読み解く
サンプル問題と令和5年公開問題を時間を気にせずに解いたところ、合わせて3問ミスでした。
昨年と比較すると、問題は易化した反面、スピード感を意識する必要があると思います。
私はスピードが遅い(相当簡単じゃない限りはトレースをしてしまう)ので、本番で時間が足りずに落ちてしまう可能性が高いです。
そこで、冒頭に戻りますが、どちらの方法でスピードを上げるのが正解でしょうか?
ご教示いただけますと幸いです。
よろしくお願いいたします。
当然ながら「問題文最速で読みトレース速度を上げる」が正解です。
当社の「基本情報技術者試験7つの超速合格術」を受講していただければ期待された回答がありますが、それでは単なる宣伝になってしまうのでひとつアドバイスさせていただきますと、「トレース前に解答群に着目する」ということです。
先に解答群を見ればプログラムのどの部分を重点的に解析する必要があるのか分かるケースが多いので、それが分かれば結果的にトレース速度が向上します。ぜひお試しください。
科目bはサンプル問題さえ解ければ合格点取れるのでしょうか?
平均5分以内で解ければ合格率は高いと思います。科目Bの問題は時間制限さえなければたいてい解けるので、この5分というのが大事です。
公開問題解いてみて何が出来ていないのかが全く分からなく、どこにも解説がなかった所にこの動画にたどり着きました、本当にありがとうございます、、
こちらこそご視聴いただきありがとうございます😊
多少なりともお役に立てようでなによりです😉
@@masuyaplus本日、科目Aが735点、Bが810点で合格しました!!!本当にありがとうございました😂
合格おめでとうございます!余裕の合格ですね😉
本動画が211点分貢献したと私で勝手に思っておきますww
他の動画で問2の解き方が理解できなかったので(☆一つレベルなのにも関わらず)この動画を見に来ました。
あ、なんだ!!という感じでした!
確かに、「proc2を呼び出すと」だから、素直にproc2を呼び出すことから始めればいいのですね。
最初の行から読むことばかり考えていたため、他の動画にていきなりproc2から読み始めていたことに違和感を感じたのでした。
ありがとうございます!!
本動画がお役に立てたようでなによりです😊
問2は関数を行ったり来たりするので、ロジックが分かるまではテンパるかもしれませんね💦
セキュリティ問題は“そこで”とか“設問”から初めに目を通しておけば回答時間短くなるとかありそうですか...?
結論から言うと、あります。ただしそれは問題によります。
本動画で解説している問題は設問を読んだだけでは解答を削れないのであまり適しません。適するのは、設問が常識レベルで削れるケースです。
例えば「FWの運用担当者を1人に限定する」という選択肢はほぼないと判断できますので削れます。選択肢をある程度削って残った選択肢の内容から逆に戻るように読んでいくとかなりの時短になるのでお試しください😉
問5のみ本番で同じようなものが出たら捨てですね〜笑
と思ったら、ありがたい動画のおかげで捨て問題ではなくなりました。本当にありがとうございます!
お役に立てたようでなによりです😊
とはいえ、問5はいかにも面倒くさそうな問題なので、とりあえず後回しにしてもよいかと思います。
@@masuyaplus そうですね!
解説参考になりました!
2週間後試験で、時間をかけて読み解いていけばなんとなく理解できるようにはなったのですが読解するスピードがなかなか上がらず苦戦しています汗
落ち着いて読み解くコツなどありますでしょうか?
動画ご視聴ありがとうございます😃
読解スピードは一朝一夕には上がらないと思いますので別の視点でひとつアドバイスさせていただきますと、問題文およびプログラムを見て「どういう意味だろう?」と疑念を持つような問題は即座に飛ばして後回しにすることです。科目Bは全20問ですが、それだけあるとハマる問題が2~3問はほぼ確実に現れます。そういった問題に時間を費やしてしまうと、後続の確実に解ける問題に時間がとれなくなります。満点を取る必要はありませんので、ヤバイと思ったらすぐさま後回しにして次の問題に進んでください。
検討をお祈りいたします😉
大門1について、iが2でjが2のとき余りが0になり素数の配列に入ることができないように見えるのですが、、
途中のコメントで「/* iの正の平方根の整数部分が2未満のときは、繰返し処理を実行しない */」とあります。これは、√3≒1.732→整数部分は1、√4=2→整数部分は2、となりiが3以下の場合はfor文が実行されず、解答群bの計算はスルーされるということになります。つまり、i=2のときはそもそも解答群bの計算はされずdivideFlagは初期値のtrueのままとなり素数の配列に入ります。
問3復習の為に最後までトレースしましたが、結局dataの並び順が変わりませんでした。もしかして最後まで解くことを想定していない問題?
sortはその名の通りソートする関数なので、最終的には1,2,3,4,5の順になりますよ。
とはいえ、再帰構造になっているのかなり面倒な計算にはなります。間違える原因として考えられるのは、
①iとjのプラス・マイナスがどこかでズレてしまっている
②data[ i ]を要素の値ではなく要素番号(i)と勘違いしている
③data[ i ]とdata[ j ]の値を入れ替えた場合に入れ替えた後の配列で計算していない
④再帰構造に気付いていない
くらいでしょうかね。
22:50 modの説明が画面上に見当たらないです・・・。
あと問6はなぜ攻撃者は複合機のアドレスを使えるのでしょうか?
まさに22:50のタイミングで画面に出てますよ。「問題の冒頭にある…」と言ってるのにないということであれば、公開問題冒頭(3ページ目)の『疑似言語の記述形式』にあるという意味です。
問6については、メールアドレスを含めた複合機の初期設定情報がWebで公開されているからです。動画中のオレンジでラインをした箇所がその根拠です。攻撃者の本物のメールアドレスとは関係なく、受信者に表示されるアドレスは簡単に偽装できますので、その手のフィッシング詐欺が横行しています。
@@masuyaplus 偽造できるんですね!知らなかったので助かりました!
3問目について。
配列の先頭を「1」から数えていますが、
本来配列の要素番号は「0」から数えられませんか?
擬似言語の書き方なのでしょうか?
疑似言語の配列の要素番号は「1」から始まりますが、お気持ちは分かります。ほとんどの言語では「0」スタートなので、プログラムに詳しい人ほど違和感を感じるという皮肉なことにりますよね。
私は前の会社でCOBOLを使っていたので1スタートもすんなり受け入れていましたが、試験ではプログラム初心者に分かりやすい仕様にしていると強引に納得するしかなさそうです😅
動画ありがとうございます。大変助かります。
質問なのですが…
4:48 jを増やしていくfor文ですが、コメントで「iの正の平方根の整数部分が2未満の時は、繰り返しを実行しない」とありますが、
①コメントなので処理に影響を与えていない
②具体的な記述は無いがその内容の実装がなされている
どちらで考えればいいのでしょうか?また①として考えた場合、
maxNum:3のとき
i:2 j:2 mod=0
i:3 j:2 mod=1 となってfalseが返されるように思うのですが…
②ですね。①だと、おっしゃる通りfalseが返されて素数である2が除外されてしまいます。
なまじプログラムを知っていると①の考えになってしまうのは理解できますが😅
@@masuyaplus
↑はtrueとfalseを逆に考えてました。
maxNum:2の時
i:2 で
jのfor条件が(2から1.414の整数部分まで1ずつ増やす)となりますが、このように(2から1まで増やす)という矛盾する条件はどう扱われるのかがよくわからないです。
j:2を代入してそれ以上増えないという扱いなのか、矛盾するので無視されるのか。
無視される場合は、i:2 とi:3の時はtrueのままでpnListに入ることになりそうですね。難しい😓
最初のコメントでおっしゃっていた通り、
「iの正の平方根の整数部分が2未満の時は、繰り返しを実行しない」は、
②具体的な記述は無いがその内容の実装がなされている
が正しい認識ですので、iが3以下の場合は正の平方根の整数部分が2未満となりjに関するfor文は実行されません。つまり、おっしゃるような矛盾は発生しません。
@@masuyaplus そうなんですね。これ試験の問題としてどうなんすかね💦
ご回答ありがとうございます。助かりました😀
公開問題が解説を聞いても分からない場合はまだ受けないほうが良いのでしょうか。問1とか素直に難しかったです
問1はそこそこ難問なので分からなくてもそれほど気にする必要はないかと思いますが、科目Bはとにかく時間との勝負なので、動画内で私が発言した必要解答時間を平均3分以上上回ってしまうと厳しいかもしれません。
ただ、随時試験なので、受験料さえ問題なければ気にせず受けてしまってよいと思います。
個人的に科目bの動画の中で1番コツつかみやすいし、理解しやすかったです!おかげさまで合格できました!ありがとうございます🙇♀️😊
合格おめでとうございます!
本動画がお役に立てたようで何よりです😊結果はご自身の努力の賜物です
基本情報を初めて受ける者です。
科目Aは問題なく過去問も解けるのですが、科目Bについては、初心者の場合どのような勉強が必要でしょうか?
色んなサイト等を見てると、トレースしていく事が大事と記載されてありますが、本番の限られた時間内でトレースを書いていると、時間が足りないのではという不安があります。
はっきり言ってトレースが大事なのは当然で、たいていの受験者は時間さえあれば解けます。なので、おっしゃる通り、科目Bは間違いなく時間との戦いです。当社のセミナーを受講すればすべて解決!と、言いたいところですが、それでは単なる銭ゲバなのでひとつアドバイスを。
1~2分程度問題を読んでイマイチ理解ができないようであれば迷わず飛ばして次の問題に進む割り切りが重要です。今回の公開問題の問5などは一見難しそうですが、ある程度問題を読むとそれほどではないと分かります(個人差はありますが)。短時間でその見極めとスキップ可否の判断力、それが科目Bの合否を分けます。