【2023年版】基本情報技術者試験完全攻略(科目B解説編)

แชร์
ฝัง
  • เผยแพร่เมื่อ 4 ก.ค. 2024
  • ⭐️基本情報技術者試験科目B:公式サンプル問題(アルゴリズム・セキュリティ)解説
    動画内に誤りがありましたのでこちらで訂正させて頂きます。
     ■対象:動画内 06:15 付近のfor文の繰り返し回数の説明
      ・誤:要素数が5なので1から3まで増やす、3回処理を繰り返す
      ・正:要素数が5なので1から2まで増やす、2回処理を繰り返す
    ━━━━━━━━━━━━━━━━
    ※2022年12月26日に、IPAから追加の問題サンプルが公開されています。
     この動画を見た後に、是非腕試しで挑戦してみてくださいね。
     www.jitec.ipa.go.jp/1_00topic...
    ━━━━━━━━━━━━━━━━
    基本情報技術者試験(FE試験)の勉強を始めたけど、難しい・・・
    科目Bのアルゴリズムとセキュリティは暗記だけでは厳しい・・・
    そんな悩みを抱える方、是非この動画で勉強してみてください。
    科目B(旧午後問題)、確実に解ける方法を解説します。
    1.アルゴリズム(実装型)
    2.アルゴリズム(結果型)
    3.セキュリティ
    以上の3つに集約して解法を解説。
    詳しい解説は動画内にてご説明しています。ぜひご覧ください。
    ━━━━━━━━━━━━━━━━
    IT学校さいとうの公式LINE
    登録するだけでプレゼントが受け取れる‼
    今回のプレゼント内容
    ✅科目Bサンプル問題の完全解説(今回動画で使用したもの)
     資料名:【2023年版】基本情報技術者試験完全攻略(科目B解説編)
    ⏬無料登録はこちら⏬
    lin.ee/JY6s3WA
    ⚠️注意点
     PCでLINEをご覧の方は携帯からご覧いただくか、
     LINE登録後に教材が欲しい旨メッセージを送って下さい。
     LINEの仕様上携帯アプリからしか教材ダウンロードサイトが表示されません。
     メッセージを頂ければ教材ダウンロードサイトURLをご案内します。
    ━━━━━━━━━━━━━━━━
    00:00:00 基本情報技術者試験完全攻略(科目B解説編)
    00:01:45 アルゴリズム(実装型)の解説
    00:24:12 アルゴリズム(結果型)の解説
    00:28:11 セキュリティの解説
    00:33:01 まとめ
    ━━━━━━━━━━━━━━━━
    #LINE登録で教材プレゼント
    #基本情報技術者試験 #FE #基本情報
    #アルゴリズム #セキュリティ

ความคิดเห็น • 78

  • @itgakko
    @itgakko  18 วันที่ผ่านมา

    ⚠学習前にご確認ください!
    ・動画で投影している教材は、本動画の概要欄からさいとうの公式LINEに登録頂くと無料でダウンロードできます!
    ・誤りがあった場合に概要欄で訂正している場合があります。動画におかしな点があった場合、まずは概要欄のご確認をお願いします。

  • @MrNariagari
    @MrNariagari ปีที่แล้ว +7

    すごい。。。すごくわかりやすい・・・・。こんな先生の授業がただなんて!最高です。

    • @itgakko
      @itgakko  ปีที่แล้ว +1

      嬉しいコメントありがとうございます!

  • @keganin
    @keganin ปีที่แล้ว +5

    わかりやすかったです!

    • @itgakko
      @itgakko  ปีที่แล้ว +1

      ありがとうございます!!

  • @user-fp6xo5bh8z
    @user-fp6xo5bh8z 11 หลายเดือนก่อน +1

    この動画の問3の質問です。選択肢にcurrがあるから、currを代入する以前の流れでcurrを代入というのが出ていないからcurrを代入するのはなんとなくわかりました。けれど選択肢にprev.next.nextがあったらその選択肢を選んでしまいそうです。prev.next.nextが正解にならない理由を教えてくださいますか。サンプル問題20問の問10とごっちゃになってしまい、理解できないので質問させてください。

    • @itgakko
      @itgakko  11 หลายเดือนก่อน +3

      質問ありがとうございます!
      prev自体がプログラム上で何を指しているのか理解できれば解決すると思います。
      下記のプログラム(問題文抜粋)で prev の値がどのように変わっていくのか具体例で見てみましょう。
      例として単方向リスト {あ, い, う} に「え」を追加する場合を考えます。
      ----------
      else
      prev ← listHead _// prev=あ_
      while (prev.next が 未定義でない)
      prev ← prev.next _// 1回目の繰り返し:prev=い_
                _// 2回目の繰り返し:prev=う_
                _// 3回目は「う」の次が未定義なので実行されない_
      endwhile
      prev.next ← [ 空欄b ] _// prev=う_
      endif
      ----------
      [ 空欄b ] を prev.next に格納するタイミングで prev=う、ですよね。
      「う」は単方向リストの3番目、つまり末尾の要素なので、
      prev.next、次の要素は存在しません(プログラム上では 未定義 と表現されています)。
      そのさらに次の要素である prev.next.next も当然存在しませんので、
      存在しないものを prev.next に格納しても
      関数の目的である「文字を単方向リストに追加」したことにはならないので、
      prev.next.next は答えになり得ません。
      以上、ご不明点ありましたらご連絡頂ければと思います。

  • @itgakko
    @itgakko  ปีที่แล้ว +7

    2022年12月26日に、IPAから追加の問題サンプルが公開されています。
    この動画を見た後に、是非腕試しで挑戦してみてくださいね。
    www.jitec.ipa.go.jp/1_00topic/topic_20221226.html

    • @orega_3ninbunni_naru
      @orega_3ninbunni_naru ปีที่แล้ว +2

      非常にわかりやすくてありがたいです!
      こちらの問題の解説はしますか?

    • @itgakko
      @itgakko  ปีที่แล้ว +2

      @@orega_3ninbunni_naru ありがとうございます!
      リンク先の問題解説は1月後半に投稿予定です🤗

    • @user-dr8fk2rg2h
      @user-dr8fk2rg2h ปีที่แล้ว +1

      すごくわかりやすかったです!リンク先の問題の解説も楽しみにしています。

    • @itgakko
      @itgakko  ปีที่แล้ว +1

      @@user-dr8fk2rg2h コメントありがとうございます!
      リンク先の問題解説作成中です!少々お待ちください🤗

  • @user-gk5em2hs9f
    @user-gk5em2hs9f 5 หลายเดือนก่อน

    問2について質問したいです。
    配列を逆順にするために、
    right変数に5を代入してarray[5]、
    left変数に1を代入してarray[1]にしてから処理を始めるロジックは理解していると考えています。
    しかし選択肢ウの、
    arrayの要素数-left+1の理屈がよく分からないです。
    繰り返しの最初でarrayの要素数-left+1をしてしまうと、
    5-1+1にしてしまうと3になるのでは?と思ったのですが、シンプルに左から計算したら5になりますね。
    ちょっと疲れてたみたいです。理解しました。

    • @itgakko
      @itgakko  5 หลายเดือนก่อน +1

      解決してよかったです!

  • @user-ut5jw4gk2h
    @user-ut5jw4gk2h 10 หลายเดือนก่อน +1

    いざ、他の問題で実装型を解こうとすると全く解けません。。。問題文と照らし合わせるのは出来てるんですがさらに難しい問題だと想像しないと解けない部分があると思うんですがその想像?がどうすれば良いのかわかりません。結局2択になって間違いが多いです
    対策はどうすればいいでしょうか?

    • @itgakko
      @itgakko  10 หลายเดือนก่อน

      質問ありがとうございます!
      お話を聞く限りプログラムの流れを読む力がまだ足りてないのだと思います。解く方針が分かってもプログラム自体に慣れていないうちは答えを導くのは難しいです。
      まず結果型の問題を多く解いてみて、プログラム自体に慣れるということをしてみた方がいいと思います。

  • @_link3263
    @_link3263 ปีที่แล้ว +4

    科目Bの解説動画はあまりないので非常に助かります!
    また、オブジェクト指向がよく理解出来ないのですが、科目B対策としては
    どのように学習すれば良いのでしょうか?
    それと、以下は問題とあまり関係ない質問ですみませんが、「qVAL」の様に
    変数の先頭にqがついている変数をたまに見かけるのですが、
    どのような時に使われる事が多いのでしょうか?

    • @itgakko
      @itgakko  ปีที่แล้ว +1

      質問ありがとうございます。
      オブジェクト指向ですが、どのあたりの理解に不安がありますでしょうか?
      科目B対策としては、一度概念さえ理解してしまえば、
      後は問題演習というのが一番よいと思いますが、
      人によって苦手な箇所は結構変わるので聞かせていただきました。
      また変数の先頭に「q」がついている件、
      すみませんこちらではわかりませんでした。
      変数名は一般的に誰でも分かるように変数名を付けるのがよいので、
      可能であれば使わない方が好ましいかもしれませんね。

    • @_link3263
      @_link3263 ปีที่แล้ว +2

      ​​@@itgakko
      わざわざ回答を下さってありがとうございます!
      メンバ変数(特にクラス型の変数)、コンストラクタ、インスタンスの参照、インスタンスの関係性が理解出来ず、擬似言語を見ても何が何やらがさっぱりという感じで一瞬で置いてきぼりになってしまいました。

    • @itgakko
      @itgakko  ปีที่แล้ว +3

      @@_link3263
      なるほど、クラスの概念のところが困りどころといった感じですね。
      概念を理解する前に擬似言語を見てもやはり詰まってしまうと思いますので、
      まずは「クラスとはどういうものか」というところを理解するしかないと思います。
      私の動画では現状オブジェクト指向の動画はないので、
      まずは概念について、他のTH-camrさんや、参考書で学習を深めるのが良いと思います。

  • @user-gf5wo5pk7v
    @user-gf5wo5pk7v 10 หลายเดือนก่อน +3

    問2ですが、arrayの要素数というのは、{1,2,3,4,5}の場合5というのは分かるのですが、例えば{3,4,5,6,7}の場合は5、{8,9,10}の場合は3、{11}の場合は1といった解釈で合っていますでしょうか?
    また、arrayの要素数-left+1の式が必要な理由も教えていただけますか?

    • @itgakko
      @itgakko  10 หลายเดือนก่อน

      質問ありがとうございます!回答しますね。
      >{1,2,3,4,5}の場合5というのは分かるのですが、例えば{3,4,5,6,7}の場合は5、{8,9,10}の場合は3、{11}の場合は1といった解釈で合っていますでしょうか?
      → その解釈であっています。
      > また、arrayの要素数-left+1の式が必要な理由も教えていただけますか?
      → すみません、どのあたりが不明なのかを詳しく教えていただけますか?
        というのも、動画内で 空欄(a) にはいる内容が「arrayの要素数-left+1」になる理由を説明させて頂いております。
        おそらくその解説の中のどこかに不明点が出たものだと思いますので、
        適切に質問に回答させて頂くためにご教授頂ければと思います。

    • @user-gf5wo5pk7v
      @user-gf5wo5pk7v 10 หลายเดือนก่อน

      @@itgakko
      丁寧に回答していただき回答ありがとうございます。説明下手ですみません。
      leftの要素数を変化させるため、「arrayの要素数-left+1」の式が必要ということでしょうか?

    • @itgakko
      @itgakko  10 หลายเดือนก่อน +1

      少し混乱してしまっているかもしれません。整理しましょう。
      まず、left は 配列ではないため「leftの要素数」という表現は成り立ちません。プログラム上で出てきている変数の内容をざっと書くと以下のようになります。
      ・array:整数型の配列。
      ・left:整数型の変数。配列の要素の入れ替えを行う際、right番目と入れ替えるために使用。
      ・right:整数型の変数。配列の要素の入れ替えを行う際、left番目と入れ替えるために使用。
      動画で説明している例と同じ {1, 2, 3, 4, 5} の並び順を逆にする場合を考えてみましょう。for文による繰り返し処理で行っている内容のイメージは以下の通りです。
      ・繰り返し1回目:(left = 1 / right = 5)
       1番目の要素と5番目の要素を入れ替える。
      ・繰り返し2回目:(left = 2 / right = 4)
       2番目の要素と4番目の要素を入れ替える。
      このように左側の要素と右側の要素を入れ替えることを繰り返し、最終的に配列全体の並び順を逆にしています。
      ここまでの話を前提とすると、整数型の変数right に格納される値は、5, 4, ... のように、配列の要素数から始まり、デクリメント(1つずつ値が減ること)していくことがわかると思います。
      なので、arrayの要素数からleftを減算しています。こうすることで、leftは1つずつ増えるのでrightが1つずつ減らすということを実現できます。残りの「+1」はただの調整ですね、具体例を見てもらえればなぜ +1 しているかはわかると思います。
      以上、ご不明点あればご連絡いただければと思います。

    • @user-gf5wo5pk7v
      @user-gf5wo5pk7v 10 หลายเดือนก่อน

      ありがとうございます。混乱していましたが、やっと理解できました!@@itgakko

    • @itgakko
      @itgakko  10 หลายเดือนก่อน

      よかったです!

  • @user-tq5wg6kl1e
    @user-tq5wg6kl1e ปีที่แล้ว +2

    質問です。
    アルゴリズムの結果型の二次元配列の問題で、sparseMatrixが[2, 3, 2]の箇所がありますが
    2回目のfor文でsparseMatrix[2,2,2]なのに、3回目のfor文でなぜsparseMatrix[2, 3, 2]になるのでしょう?
    行と列がfor文でインクリメントされているので、[2,3,2]になるのが理解できません。

    • @itgakko
      @itgakko  ปีที่แล้ว +3

      質問ありがとうございます。以下に回答しますね。
      結論としては、動画で解説している内容が正しいです。
      sparseMatrix[1]、sparseMatrix[2]、sparseMatrix[3] へ値を追加する処理について、
      記載頂いている2回目と3回目の状況を整理すると、以下のようになります。
      ・2回目
       i=2, j=2 の時、matrix[i, j] = 2 なので、以下の通り値を追加する。
        ・sparseMatrix[1] の末尾に 2
        ・sparseMatrix[2] の末尾に 2
        ・sparseMatrix[3] の末尾に 2
      ・3回目
       i=2, j=3 の時、matrix[i, j] = 2 なので、以下の通り値を追加する。
        ・sparseMatrix[1] の末尾に 2
        ・sparseMatrix[2] の末尾に 3
        ・sparseMatrix[3] の末尾に 2
      2回目と3回目では 列(j) はインクリメントされますが 行(i) はインクリメントされません。
      おそらく for文 が二重になっている場合の処理順で混乱してしまっている部分があると思いますので、この問題の 2つの for文 の処理の流れを以下に書いておきます。
       for ( i を 1 から matrixの行数 まで 1 ずつ増やす)
         for ( i を 1 から matrixの列数 まで 1 ずつ増やす)
          ... (中の処理は省略) ...
         endfor
       endfor
      問題では for文 が上記のように構成されていますよね。
      この場合、i の 値、j の値 は繰り返し処理の中で以下のように推移します。
       ・i=1, j=1  ・・・sparseMatrixに値を追加するタイミング
       ・i=1, j=2
       ・i=1, j=3
       ・i=1, j=4
       ・i=1, j=5
       ・i=2, j=1
       ・i=2, j=2  ・・・sparseMatrixに値を追加するタイミング
       ・i=2, j=3  ・・・sparseMatrixに値を追加するタイミング
       ・i=2, j=4
       ・i=2, j=5
       ・i=3, j=1
       ・i=3, j=2
       ・i=3, j=3
       ・i=3, j=4  ・・・sparseMatrixに値を追加するタイミング
       ・i=3, j=5  ・・・sparseMatrixに値を追加するタイミング
       ・i=4, j=1
       ・i=4, j=2
       ・i=4, j=3
       ・i=4, j=4  ・・・sparseMatrixに値を追加するタイミング
       ・i=4, j=5
       ・i=5, j=1
       ・i=5, j=2
       ・i=5, j=3
       ・i=5, j=4
       ・i=5, j=5 ・・・sparseMatrixに値を追加するタイミング
      以上となります。ご不明点あればご連絡いただければと思います。

    • @user-tq5wg6kl1e
      @user-tq5wg6kl1e ปีที่แล้ว +2

      @@itgakko こんばんは!
      ご丁寧に解説有難う御座いました。そうでしたね、ネストしたfor文は入れ子になっているfor文が全部回ってから最初のfor文に戻るんでしたね。理解できました、有難う御座います!

  • @user-yt7px5mg6g
    @user-yt7px5mg6g 8 หลายเดือนก่อน +1

    20:00からの問題で、words.frtq(s1)が、s1の出現回数ではなくc1の出現回数になる理由を教えていただけますでしょうか。

    • @itgakko
      @itgakko  8 หลายเดือนก่อน

      質問ありがとうございます!
      関数probの先頭2行で c1 と c2 の値をそれぞれ s1 と s2 に格納しているためです。
      【プログラムの該当行】
      文字列型 s1 ← c1の1文字だけからなる文字列
      文字列型 s2 ← c2の1文字だけからなる文字列

  • @user-uf7ei3px7c
    @user-uf7ei3px7c ปีที่แล้ว +1

    すみません、動画の20:00からの問題なのですが、どの選択肢をえらんでもプログラムの例の答えである0.4にならないと思い、コメントさせていただきました。
    〜ここから手順を説明します〜
     今回のプログラムの例を参考にするとwordfreq(s1)であるnの出現回数は8回、wordEfreq(s1)であるnで終わる単語数は3回、wordfreq(s2)であるfの出現回数は2回、wordEfreq(s2)であるfで終わる単語数は0回だと判断しました。そこから実際に選択肢である{ア、イ、ウ、エ}に当てはめて計算しました。
     まず、"ア"ですが(8-3)÷(8+2)より5÷10=0.5。
     次に、"イ"ですが(2-0)÷(8+2)より2÷10=0.2
     次は、"ウ" ですが10÷(8-3)より10÷5=2
     最後に、"エ"の10÷(2-0)=5となりました。
     私の解釈のミスに問題があると思うのですが、どうしても自分では理解しきれないので、よろしければご指摘のほどよろしくお願い致します。
     長文失礼しました。

    • @itgakko
      @itgakko  ปีที่แล้ว +8

      ご質問ありがとうございます。問5についてですね。
      計算式の中に「freq(s1 + s2)」があると思うのですが、
      こちらを「freq(s1) + freq(s2)」と認識されてしまっているが為に
      具体例で解答が一致しないのだと思われます。
      「freq(s1 + s2)」は「文字列 s1 と s2 を結合した値を引数に freq関数を実行する」
      という意味合いになりますので、具体例ですと「freq("nf")」になり、
      英単語群中の"nf"の出現回数=2 が freq(s1 + s2) の計算結果となります。
      念の為、全体的な考え方についても
      正解である(ウ)に絞って回答させていただきます。
      ●問題文中の具体例
       words = {importance, inflation, information, innovation}
       c1 = "n"、c2 = "f"
      ●プログラム該当箇所
       return words.freq(s1 + s2) / (words.freq(s1) - words.freqE(s1))
        ※1:freq(str):英単語群中の文字列 str の出現回数を返す。
        ※2:freqE(str):英単語群の中で、文字列 str で終わる英単語の数を返す。
      ●解説
       プログラム上で使用している各関数の実行結果は以下の通りになります。
        ①words.freq(s1 + s2):
         英単語群中の"nf"の出現回数なので、該当数は*で囲んだ部分の「2」
         {importance, i*nf*lation, i*nf*ormation, innovation}
        ②words.freq(s1):
         英単語群中の"n"の出現回数なので、該当数は*で囲んだ部分の「8」
         {importa*n*ce, i*n*flatio*n*, i*n*formatio*n*, i*nn*ovatio*n*}
        ③words.freqE(s1):
         英単語群の中で、"n"で終わる英単語の数なので、該当数は*で囲んだ部分の「3」
         {importance, *inflation*, *information*, *innovation*}
       プログラム上での計算式は ① / (②-③) なので、
       2 / (8-3) = 0.4 となり、例の通りの答えになります。
      何かご不明点ありましたらご連絡ください。

    • @user-uf7ei3px7c
      @user-uf7ei3px7c ปีที่แล้ว +2

      @@itgakko理解できましたあああ。たしかにfreq(s1+s2)の部分がfreq(s1)+freq(s2)になっていました。
       丁寧すぎる解説のおかげで理解することができました。ありがとうございます。これから復習をし本試験に向け鍛錬していこうと思います。

    • @itgakko
      @itgakko  ปีที่แล้ว +2

      @@user-uf7ei3px7c
      承知しました!
      基本情報技術者試験の勉強頑張ってください🤗

  • @user-vx8np2zs7i
    @user-vx8np2zs7i 9 หลายเดือนก่อน +1

    問3について質問があります。
    プログラム中でelse文が実行される理由がわかりません。
    大域変数でListHeadは未定義になっていますし、if文が実行されれば追加文字が追加されて終了だと思います。
    else文を実行する時、
    (あ、い、う)に(え)を追加するとしたら、どの段階でListHeadに(あ)を代入したか知りたいです。
    よろしくお願いいたします🙇‍♀️

    • @itgakko
      @itgakko  9 หลายเดือนก่อน +1

      質問ありがとうございます!
      答えは単純で、appendメソッドが4回実行されたからですね。
      まず、おっしゃる通り大域変数ListHeadは未定義が格納されています。しかしこれはあくまで初期状態を表しています。
      質問頂いた「(あ、い、う)に(え)を追加する」ケースであれば、以下のように4回appendメソッドが実行されたことになります。
      append('あ')
      append('い')
      append('う')
      append('え')
      以上となります。ご不明点ありましたらご連絡いただければと思います。

    • @user-vx8np2zs7i
      @user-vx8np2zs7i 9 หลายเดือนก่อน +1

      なるほど!理解できました!
      ありがとうございます!

    • @itgakko
      @itgakko  9 หลายเดือนก่อน +1

      @user-vx8np2zs7i よかったです!

  • @user-cr6jj8nt5b
    @user-cr6jj8nt5b 5 หลายเดือนก่อน

    稚拙な質問で申し訳ないんですが、2問目の3回処理を繰り返すっていうのは
    arrayの要素数5➗2をしているという事でしょうか

    • @itgakko
      @itgakko  5 หลายเดือนก่อน +1

      質問ありがとうございます!
      ご質問いただいた内容は
      -----
      arrayの要素数 ÷ 2 の商 は「2」なのに
      3回繰り返すのはおかしいのではないか
      -----
      ということでしょうか?
      こちら3回ではなく2回処理を繰り返すのが正しい内容になります。
      本動画概要欄にて訂正させていただいております。
      以下に概要欄と同じ内容を記載しますので、
      こちらをご確認いただけますでしょうか。
      -----
      動画内に誤りがありましたのでこちらで訂正させて頂きます。
       ■対象:動画内 06:15 付近のfor文の繰り返し回数の説明
        ・誤:要素数が5なので1から3まで増やす、3回処理を繰り返す
        ・正:要素数が5なので1から2まで増やす、2回処理を繰り返す
      -----

  • @user-tt7uk9gr9l
    @user-tt7uk9gr9l 4 หลายเดือนก่อน

    直接関係ないですが、問1に「ageが4以上 and ageが9以下」ってのが有ったらそれでも正解になりますか?
    そして問3がそもそも何を言っているのか全く分かりません・・・他の方の質問さえわかっていないです。他の基本的な動画は視聴したのですが、落ち込みます。

    • @itgakko
      @itgakko  4 หลายเดือนก่อน +1

      質問ありがとうございます!
      正解になりますが、冗長なプログラムになるので
      解答の通り「ageが9以下」だけの方が望ましいですね。
      elseifの上に「if (age が 3以下) 」があるので、
      elseifと記述した時点で「ageが4以上」という条件が前提になります。
      なのでelseifの()内に「ageが4以上」と記述すると同じ条件を二重に記述してしまうことになります。
      問3はオブジェクト指向の問題ですね。
      こちらが難しいと感じる場合は先に以下の動画を見るのが良いと思います。
      【問題演習付き】科目Bオブジェクト指向完全攻略(基本情報技術者試験|アルゴリズム)
      th-cam.com/video/adjCffDTWnE/w-d-xo.html

  • @kaguya_0101
    @kaguya_0101 7 หลายเดือนก่อน +1

    いつもお世話になっております。
    大変恐縮ですが自分用コメントをさせていただきます
    27:24
    該当するところ以外はif文ではじかれるので考えない
     ・i=1, j=1  ・・・sparseMatrixに値を追加するタイミング
     ・i=1, j=2
     ・i=1, j=3
     ・i=1, j=4
     ・i=1, j=5
     ・i=2, j=1
     ・i=2, j=2  ・・・sparseMatrixに値を追加するタイミング
     ・i=2, j=3  ・・・sparseMatrixに値を追加するタイミング
     ・i=2, j=4
     ・i=2, j=5
     ・i=3, j=1
     ・i=3, j=2
     ・i=3, j=3
     ・i=3, j=4  ・・・sparseMatrixに値を追加するタイミング
     ・i=3, j=5  ・・・sparseMatrixに値を追加するタイミング
     ・i=4, j=1
     ・i=4, j=2
     ・i=4, j=3
     ・i=4, j=4  ・・・sparseMatrixに値を追加するタイミング
     ・i=4, j=5
     ・i=5, j=1
     ・i=5, j=2
     ・i=5, j=3
     ・i=5, j=4
     ・i=5, j=5 ・・・sparseMatrixに値を追加するタイミング

  • @AtomSaito
    @AtomSaito ปีที่แล้ว +3

    早く解けるのは素晴らしいと思いますが、初心者の私にとってトレースしながら解くのが一番楽かもしれない。まだ理解するのには想像力が必要なのが苦痛です。解説ありがとうございます。

    • @itgakko
      @itgakko  ปีที่แล้ว +2

      コメントありがとうございます!
      ご記載いただいた通り慣れないうちは力技でトレースした方が確実です。
      これに慣れてくると次第に書かなくても頭の中でできるようになってきます。
      基本情報技術者試験の勉強頑張って下さい!

  • @foolim1
    @foolim1 ปีที่แล้ว +2

    細かいことですがsparseはスペースじゃなくてスパースですよ(希薄な、まばらなという意味)

    • @itgakko
      @itgakko  ปีที่แล้ว

      ありがとうございます!!

  • @MJohn0203
    @MJohn0203 4 หลายเดือนก่อน

    プログラミングはちょっとだけ齧ってるからなんとかいけるかなーと思ったら、頭の中だけだと処理しきれなくてトレースするも、PC画面とメモ用紙の行き来に時間かかって結局ボロボロでした…😂
    0か100のやり方ではなく、動画参考にして必要な部分だけメモやトレースする対応にできるよう動画見て勉強します!
    (ちなみに2〜3問分くらい点数足りてませんでした)

    • @itgakko
      @itgakko  4 หลายเดือนก่อน

      勉強頑張って下さい!

    • @MJohn0203
      @MJohn0203 4 หลายเดือนก่อน

      @@itgakko ありがとうございます!

  • @user-vw2xs8ic9q
    @user-vw2xs8ic9q 9 หลายเดือนก่อน

    科目bはサンプル問題さえ解ければ合格点取れるのでしょうか?

    • @itgakko
      @itgakko  9 หลายเดือนก่อน

      質問ありがとうございます!
      結論、分からないですね。
      しかし個人的な感覚で言えば、公式が出しているサンプル問題や過去問を全て「素早く」かつ「内容を理解」した上で解けているのであれば、科目B合格点は到達できると思います。

  • @user-np2ie6up4j
    @user-np2ie6up4j 7 วันที่ผ่านมา

    3番のコンストラクタのところの引数qValでメンバ変数valを初期化するのところがよく分かりません。他のところは理解出来たのですが、この説明は何を行ってるのか詳しく知りたいです

    • @itgakko
      @itgakko  4 วันที่ผ่านมา

      コメントありがとうございます!
      コンストラクタなど、オブジェクト指向に関しては以下の動画で詳しく解説していますので、よろしければこちらの動画をご視聴ください!
      【問題演習付き】科目Bオブジェクト指向完全攻略(基本情報技術者試験|アルゴリズム)
      th-cam.com/video/adjCffDTWnE/w-d-xo.html

  • @user-ex5sd8xy6c
    @user-ex5sd8xy6c 4 หลายเดือนก่อน

    問2について質問があるのですが、選択肢ウのarrayの要素数ーleft+1をした場合、3になってしまい、この場合配列の1と5を逆にしたことにならないと思うのですが、その原因を教えていただきたいです。

    • @user-tt7uk9gr9l
      @user-tt7uk9gr9l 4 หลายเดือนก่อน

      arrayの要素数=5、最初のleft=1
      だから
      5ー1+1=5
      ということになりますね。
      たぶん5-(1+1)=3と計算してしまっているのではないでしょうか?

    • @itgakko
      @itgakko  4 หลายเดือนก่อน

      コメント頂いている方の内容の通りです!
      leftの値=1の場合の時のことをおっしゃっていると思いますが、
      この場合 arrayの要素数 - left + 1 = 5 -1 +1 = 5 になります!
      arrayの要素数というのは、配列arrayの要素の数ということです。
      本問題ではarrayは{1, 2, 3, 4, 5}、要素の数が5なので
      arrayの要素数は5になります。

    • @itgakko
      @itgakko  4 หลายเดือนก่อน

      @@user-tt7uk9gr9l コメントありがとうございます!

    • @user-ex5sd8xy6c
      @user-ex5sd8xy6c 4 หลายเดือนก่อน

      @@user-tt7uk9gr9l ありがとうございます!
      すみません、そのように計算していました。基本的なことを忘れずに勉強したいと思います。ありがとうございました!

  • @user-mg3qw7xe6t
    @user-mg3qw7xe6t 10 หลายเดือนก่อน +1

    自分用 13:54

  • @user-kg4vx7ms3q
    @user-kg4vx7ms3q ปีที่แล้ว +8

    頭の悪い質問ですみません。。
    arrayの要素数は5だと思うのですが
    5÷2の商が3になるのは何故ですか?

    • @itgakko
      @itgakko  ปีที่แล้ว +6

      大変失礼いたしました。誤りです。
      動画内6:15あたりからの部分を指しておられると思うのですが、
      ご指摘の通り、要素数:5 ÷ 2 = 2 でfor文は 1から2の2回繰り返すが正しい値となります。
      補足させて頂くと、繰り返しが2回で問題ない理由は、
       ・1回目のfor文で1番目⇄5番目、
       ・2回目のfor文で2番目⇄4番目
      を入れ替えることになり3番目は移動させなくても2回のfor文で配列の中身が全て入れ替わっている為です。
      ご指摘いただきありがとうございました。
      動画概要欄にも該当箇所は訂正の旨記載させて頂きます。

    • @user-kg4vx7ms3q
      @user-kg4vx7ms3q ปีที่แล้ว +5

      @@itgakko ご丁寧にありがとうございます!!
      理解しました。
      アルゴリズムにまだまだ拒否反応が出てしまうのですがコツコツ頑張ります。
      これからも動画楽しみにしてます!

  • @user-ly4ou6gz3o
    @user-ly4ou6gz3o 3 หลายเดือนก่อน

    27:37からわからなくなりました。
    sparsematrix(1)2
    sparsematrix(2)2
    sparsematrix(3)2
    までは理解できましたが
    次の行は
    sparsematrix(1)3
    sparsematrix(2)3
    sparsematrix(3)0
    だと思っていたのですが違うのですか。。。。全然わからない。。。。

    • @user-ly4ou6gz3o
      @user-ly4ou6gz3o 3 หลายเดือนก่อน

      for文でiもjも1ずつ増やすって書いてあるのでてっきり増えると思ってたのですが。。。

    • @itgakko
      @itgakko  3 หลายเดือนก่อน

      質問ありがとうございます!
      おそらくfor文が二重になっている場合の
      処理順に関するご質問だと思います。
      分かりやすいように簡単な例で説明しますね。
      for文が二重になっており i と j の値を足し算した結果を
      出力するプログラムです。
      -----
      for ( i を 1 から 2 まで 1ずつ増やす)
      for ( j を 1 から 3 まで 1ずつ増やす)
      ( i + j ) の値を出力する
      endfor
      endfor
      -----
      この場合、出力する結果は以下のようになります。
      ・i=1, j=1:1+1 = 2
      ・i=1, j=2:1+2 = 3
      ・i=1, j=3:1+3 = 4
      ・i=2, j=1:2+1 = 3
      ・i=2, j=2:2+2 = 4
      ・i=2, j=3:2+3 = 5
      for文が二重になっている場合、
      i と j の値は上記のように移り変わっていくので、
      これを踏まえて問題を見直してみてください。
      あと、仰っている以下の部分について、
      > sparsematrix(1)3
      > sparsematrix(2)3
      > sparsematrix(3)0
      > だと思っていたのですが
      i=3,j=3の場合、matrix[i, j]の値が0になるため、
      プログラム内「if (matrix[i, j] が 0 でない)」の結果が偽(false)になります。
      そのためif文内の処理(sparseMatrix[1]、sparseMatrix[2]、sparseMatrix[3]に値を追加する処理)は実行されません。
      こちらも合わせてご確認いただければと思います。

  • @user-pt1fq7vo9m
    @user-pt1fq7vo9m 7 หลายเดือนก่อน

    アルゴリズム問題で+とでたら、連結は知っているのですが、足し算のほうの+はでないのでしょうか?また、出る場合は、どのようにして見極めればよいのでしょうか?

    • @itgakko
      @itgakko  7 หลายเดือนก่อน

      質問ありがとうございます!
      以下のように見分ければ良いです。
       ・計算対象が文字列の場合:文字列の連結を表す。
       ・計算対象が数値の場合:足し算を表す。

    • @user-pt1fq7vo9m
      @user-pt1fq7vo9m 7 หลายเดือนก่อน

      自分が知識不足でした・・・ご丁寧に回答を教えていただき誠にありがとうございます!!@@itgakko

    • @itgakko
      @itgakko  7 หลายเดือนก่อน

      よかったです!

  • @itgakko
    @itgakko  10 หลายเดือนก่อน +3

    動画で投影している教材はさいとうの公式LINEに登録頂くと無料でダウンロードできます!
    無料で教材が欲しい方は概要欄からLINEに登録してみて下さいね!
    今回の動画の教材名:【2023年版】基本情報技術者試験完全攻略(科目B解説編)

  • @user-qt9mj1zt1o
    @user-qt9mj1zt1o 11 หลายเดือนก่อน +1

    サンプル問題が余裕で解けたから本試験受けたら505点で落ちた😢
    サンプル問題より余裕で難しかった

    • @itgakko
      @itgakko  11 หลายเดือนก่อน +2

      試験お疲れ様でした!
      本番試験は少なくともサンプル問題の最初の方よりは相当難易度が上がりますね!

  • @user-qy2bk2zu4p
    @user-qy2bk2zu4p ปีที่แล้ว +20

    1問目意味わからんくらい簡単なのに3問目から難しくなりすぎでは。。

    • @itgakko
      @itgakko  ปีที่แล้ว +6

      コメントありがとうございます!
      おっしゃる通りレベルが急に上がっています。
      他動画で難易度低めの問題中心の解説も行っているので、
      よければそちらも試してみてください。

  • @user-vu6zf8dv9n
    @user-vu6zf8dv9n ปีที่แล้ว +1

    うーん。。2問目から理解できない。説明が速いし、分解して説明してほしい。初心者にはきつい。

    • @itgakko
      @itgakko  ปีที่แล้ว +1

      コメントありがとうございます!
      改善しますね!
      初心者の方向けにはこちらの動画があるのでよければお試しください!
      th-cam.com/video/waAwVXa9y2o/w-d-xo.html
      また画面の歯車マークから再生速度が変更できますのでよければお試しください!