科目Bの考え方について
負け犬さん
(No.1)
今年から基本情報技術者試験に挑戦しまして、3回とも科目Bが580→450→330で届かず落ち続けています。
科目Bの特にアルゴリズム問題で毎回頭が真っ白になります。問題こなす量が少ないのでしょうか?解ける人はどういう感じで解いておられるのか気になります。初見の問題に対して、これはあのアルゴリズムだというように理解しておられるということでしょうか。テキストの問題は何回か解けば覚えてしまうと思いますが、それを繰り返していけば良いということでしょうか。
具体的に、正解を見つけるイメージができません。
何も見えないところから、探し当てろって言われているみたいです。
プログラミング経験はJavaのBronze〜Silverレベルは理解しております。実務経験はありません。
科目Bの特にアルゴリズム問題で毎回頭が真っ白になります。問題こなす量が少ないのでしょうか?解ける人はどういう感じで解いておられるのか気になります。初見の問題に対して、これはあのアルゴリズムだというように理解しておられるということでしょうか。テキストの問題は何回か解けば覚えてしまうと思いますが、それを繰り返していけば良いということでしょうか。
具体的に、正解を見つけるイメージができません。
何も見えないところから、探し当てろって言われているみたいです。
プログラミング経験はJavaのBronze〜Silverレベルは理解しております。実務経験はありません。
2024.07.30 12:28
電タックさん
★FE ブロンズマイスター
(No.2)
科目Bに苦戦されている方に私がコメントできることは、以下書いてくださっているこの1点につきます。
つまり正解の選択肢から答えを見つけるのではなく
正解の選択肢を作れますか?
これが出来ている人が科目Bを合格している人だと思ってます。
試しにですが、以下に問題を用意したのでやってみてください。
関数 transformSparseMatrix は,引数matrixで二次元配列として与えられた行列を,整数型配列の配列に変換して返す。関数transformSparseMatrixをtransformSparseMatrix({{3, 0, 0, 0, 0}, {0, 2, 2, 0, 0}, {0, 0, 0, 1, 3}, {0, 0, 0, 2, 0}, {0, 0, 0, 0, 1}})として呼び出したときの戻り値は
である。
○整数型配列の配列: transformSparseMatrix(整数型の二次元配列: matrix)
整数型: i, j
整数型配列の配列: sparseMatrix
sparseMatrix ← {{}, {}, {}} /* 要素数0の配列を三つ要素にもつ配列 */
for (i を 1 から matrixの行数 まで 1 ずつ増やす)
_for (j を 1 から matrixの列数 まで 1 ずつ増やす)
__if (matrix[i, j] が 0 でない)
___sparseMatrix[1]の末尾 に iの値 を追加する
___sparseMatrix[2]の末尾 に jの値 を追加する
___sparseMatrix[3]の末尾 に matrix[i, j]の値 を追加する
__endif
_endfor
endfor
return sparseMatrix
これは2022年4月の科目Bサンプル問題PDFで解答以外をおおよそそのままコピーしました。
解答郡を見ずに、a,b,cの答えを作れますか?
これができていれば合格できる、もしくはかなり合格に近いと思います。
解いてみて
・5分どころじゃなくめっちゃ時間かかるな
・◯◯の部分が途中わからなくなったな
・ループは1から最後の数字までを含むんだっけ?いやその前までだっけ?・・・
といった問題点から
どうやってメモを残せば間違いが起こりにくいか、問題を解く上で助けになるか等が見えてくると思います。
※実際の試験ではこの様なループ(再起含む)では先頭から大体4つ目当たりで選択肢が1個に絞られるのでそれ以上はやらずにそこで解答を埋めます。
一回時間を気にせずやってみて問題点を見つめ直してみるのはいかがでしょうか?
これは読む上で少し助けになるかもね、でもなくても全然OKというレベルなので気にしなくていいです。
>具体的に、正解を見つけるイメージができません。
>何も見えないところから、探し当てろって言われているみたいです。
つまり正解の選択肢から答えを見つけるのではなく
正解の選択肢を作れますか?
これが出来ている人が科目Bを合格している人だと思ってます。
試しにですが、以下に問題を用意したのでやってみてください。
関数 transformSparseMatrix は,引数matrixで二次元配列として与えられた行列を,整数型配列の配列に変換して返す。関数transformSparseMatrixをtransformSparseMatrix({{3, 0, 0, 0, 0}, {0, 2, 2, 0, 0}, {0, 0, 0, 1, 3}, {0, 0, 0, 2, 0}, {0, 0, 0, 0, 1}})として呼び出したときの戻り値は
>{{a},{b},{c}}
である。
○整数型配列の配列: transformSparseMatrix(整数型の二次元配列: matrix)
整数型: i, j
整数型配列の配列: sparseMatrix
sparseMatrix ← {{}, {}, {}} /* 要素数0の配列を三つ要素にもつ配列 */
for (i を 1 から matrixの行数 まで 1 ずつ増やす)
_for (j を 1 から matrixの列数 まで 1 ずつ増やす)
__if (matrix[i, j] が 0 でない)
___sparseMatrix[1]の末尾 に iの値 を追加する
___sparseMatrix[2]の末尾 に jの値 を追加する
___sparseMatrix[3]の末尾 に matrix[i, j]の値 を追加する
__endif
_endfor
endfor
return sparseMatrix
これは2022年4月の科目Bサンプル問題PDFで解答以外をおおよそそのままコピーしました。
解答郡を見ずに、a,b,cの答えを作れますか?
これができていれば合格できる、もしくはかなり合格に近いと思います。
解いてみて
・5分どころじゃなくめっちゃ時間かかるな
・◯◯の部分が途中わからなくなったな
・ループは1から最後の数字までを含むんだっけ?いやその前までだっけ?・・・
といった問題点から
どうやってメモを残せば間違いが起こりにくいか、問題を解く上で助けになるか等が見えてくると思います。
※実際の試験ではこの様なループ(再起含む)では先頭から大体4つ目当たりで選択肢が1個に絞られるのでそれ以上はやらずにそこで解答を埋めます。
一回時間を気にせずやってみて問題点を見つめ直してみるのはいかがでしょうか?
>あのアルゴリズムだというように理解
これは読む上で少し助けになるかもね、でもなくても全然OKというレベルなので気にしなくていいです。
2024.07.30 13:11
たなかみのるさん
(No.3)
私はFEと直近のAPの試験にも合格しましたが、未だに科目Bの応用問題は理解出来ません。
ただ、答えを"何となく"推測出来るだけです。
負け犬さんの言葉を借りると「何も見えないけど、少なくともこれが当たりじゃないことだけは判る」くらいの認識ですね。
択一のCBT試験はこの程度の理解でいいと個人的には思っています。
当たり前ですが、基礎的な問題とセキュリティは確実に解けるのが大前提です。
ただ、答えを"何となく"推測出来るだけです。
負け犬さんの言葉を借りると「何も見えないけど、少なくともこれが当たりじゃないことだけは判る」くらいの認識ですね。
択一のCBT試験はこの程度の理解でいいと個人的には思っています。
当たり前ですが、基礎的な問題とセキュリティは確実に解けるのが大前提です。
2024.07.30 13:17
負け犬さん
(No.4)
>電タックさん ありがとうございます!作り出すという発想は無かったです。参考になります。
>たなかみのるさん ありがとうございます!合格が目標なので、基礎とセキュリティをまず最優先にします。
2024.07.30 13:29
負け犬さん
(No.5)
>電タックさん サンプル問題を解いてみました。15分ほどかかりましたが、途中で法則性が見えてきてこういうことか!となりました。トレースを行うとき、行だけに固執して、ifやループ文の条件式が見えていなかったと痛感しました。ありがとうございました。
2024.07.30 14:12
広告
返信投稿用フォーム
スパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。
広告