Размер видео: 1280 X 720853 X 480640 X 360
Показать панель управления
Автовоспроизведение
Автоповтор
⚠学習前にご確認ください!・誤りがあった場合に概要欄で訂正している場合があります。動画におかしな点があった場合、まずは概要欄のご確認をお願いします。・動画で投影している教材は、本動画の概要欄からさいとうの公式LINEに登録頂くと無料でダウンロードできます! ※概要欄で訂正している内容が反映されたものをダウンロードできます。
2022年12月26日に、IPAから追加の問題サンプルが公開されています。この動画を見た後に、是非腕試しで挑戦してみてくださいね。www.jitec.ipa.go.jp/1_00topic/topic_20221226.html
非常にわかりやすくてありがたいです!こちらの問題の解説はしますか?
@@orega_3ninbunni_naru ありがとうございます!リンク先の問題解説は1月後半に投稿予定です🤗
すごくわかりやすかったです!リンク先の問題の解説も楽しみにしています。
@@user-dr8fk2rg2h コメントありがとうございます!リンク先の問題解説作成中です!少々お待ちください🤗
すごい。。。すごくわかりやすい・・・・。こんな先生の授業がただなんて!最高です。
嬉しいコメントありがとうございます!
動画で投影している教材はさいとうの公式LINEに登録頂くと無料でダウンロードできます!無料で教材が欲しい方は概要欄からLINEに登録してみて下さいね!今回の動画の教材名:【2023年版】基本情報技術者試験完全攻略(科目B解説編)
本日2回目の基本情報技術者試験を受験してきました。前回科目Bが540点で惜しくも不合格となってしまったのですが、今回は630点でなんとか合格できてそうです!!アルゴリズムに対しての苦手意識が強く勉強に苦戦しましたが、色々動画を視聴させていただき、合格ラインに載せることができました。大変お世話になりました🎉
合格ライン到達おめでとうございます!苦手克服素晴らしいですね!
いつもお世話になっております。大変恐縮ですが自分用コメントをさせていただきます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に値を追加するタイミング
素晴らしい!
問2について質問したいです。配列を逆順にするために、right変数に5を代入してarray[5]、left変数に1を代入してarray[1]にしてから処理を始めるロジックは理解していると考えています。しかし選択肢ウの、arrayの要素数-left+1の理屈がよく分からないです。繰り返しの最初でarrayの要素数-left+1をしてしまうと、5-1+1にしてしまうと3になるのでは?と思ったのですが、シンプルに左から計算したら5になりますね。ちょっと疲れてたみたいです。理解しました。
解決してよかったです!
わかりやすかったです!
ありがとうございます!!
頭の悪い質問ですみません。。arrayの要素数は5だと思うのですが5÷2の商が3になるのは何故ですか?
大変失礼いたしました。誤りです。動画内6:15あたりからの部分を指しておられると思うのですが、ご指摘の通り、要素数:5 ÷ 2 = 2 でfor文は 1から2の2回繰り返すが正しい値となります。補足させて頂くと、繰り返しが2回で問題ない理由は、 ・1回目のfor文で1番目⇄5番目、 ・2回目のfor文で2番目⇄4番目を入れ替えることになり3番目は移動させなくても2回のfor文で配列の中身が全て入れ替わっている為です。ご指摘いただきありがとうございました。動画概要欄にも該当箇所は訂正の旨記載させて頂きます。
@@itgakko ご丁寧にありがとうございます!!理解しました。アルゴリズムにまだまだ拒否反応が出てしまうのですがコツコツ頑張ります。これからも動画楽しみにしてます!
問2ですが、arrayの要素数というのは、{1,2,3,4,5}の場合5というのは分かるのですが、例えば{3,4,5,6,7}の場合は5、{8,9,10}の場合は3、{11}の場合は1といった解釈で合っていますでしょうか?また、arrayの要素数-left+1の式が必要な理由も教えていただけますか?
質問ありがとうございます!回答しますね。>{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」になる理由を説明させて頂いております。 おそらくその解説の中のどこかに不明点が出たものだと思いますので、 適切に質問に回答させて頂くためにご教授頂ければと思います。
@@itgakko 丁寧に回答していただき回答ありがとうございます。説明下手ですみません。leftの要素数を変化させるため、「arrayの要素数-left+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 しているかはわかると思います。以上、ご不明点あればご連絡いただければと思います。
ありがとうございます。混乱していましたが、やっと理解できました!@@itgakko
よかったです!
質問です。アルゴリズムの結果型の二次元配列の問題で、sparseMatrixが[2, 3, 2]の箇所がありますが2回目のfor文でsparseMatrix[2,2,2]なのに、3回目のfor文でなぜsparseMatrix[2, 3, 2]になるのでしょう?行と列がfor文でインクリメントされているので、[2,3,2]になるのが理解できません。
質問ありがとうございます。以下に回答しますね。結論としては、動画で解説している内容が正しいです。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] の末尾に 22回目と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に値を追加するタイミング以上となります。ご不明点あればご連絡いただければと思います。
@@itgakko こんばんは!ご丁寧に解説有難う御座いました。そうでしたね、ネストしたfor文は入れ子になっているfor文が全部回ってから最初のfor文に戻るんでしたね。理解できました、有難う御座います!
いざ、他の問題で実装型を解こうとすると全く解けません。。。問題文と照らし合わせるのは出来てるんですがさらに難しい問題だと想像しないと解けない部分があると思うんですがその想像?がどうすれば良いのかわかりません。結局2択になって間違いが多いです対策はどうすればいいでしょうか?
質問ありがとうございます!お話を聞く限りプログラムの流れを読む力がまだ足りてないのだと思います。解く方針が分かってもプログラム自体に慣れていないうちは答えを導くのは難しいです。まず結果型の問題を多く解いてみて、プログラム自体に慣れるということをしてみた方がいいと思います。
この動画の問3の質問です。選択肢にcurrがあるから、currを代入する以前の流れでcurrを代入というのが出ていないからcurrを代入するのはなんとなくわかりました。けれど選択肢にprev.next.nextがあったらその選択肢を選んでしまいそうです。prev.next.nextが正解にならない理由を教えてくださいますか。サンプル問題20問の問10とごっちゃになってしまい、理解できないので質問させてください。
質問ありがとうございます!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 は答えになり得ません。以上、ご不明点ありましたらご連絡頂ければと思います。
科目Bの解説動画はあまりないので非常に助かります!また、オブジェクト指向がよく理解出来ないのですが、科目B対策としてはどのように学習すれば良いのでしょうか?それと、以下は問題とあまり関係ない質問ですみませんが、「qVAL」の様に変数の先頭にqがついている変数をたまに見かけるのですが、どのような時に使われる事が多いのでしょうか?
質問ありがとうございます。オブジェクト指向ですが、どのあたりの理解に不安がありますでしょうか?科目B対策としては、一度概念さえ理解してしまえば、後は問題演習というのが一番よいと思いますが、人によって苦手な箇所は結構変わるので聞かせていただきました。また変数の先頭に「q」がついている件、すみませんこちらではわかりませんでした。変数名は一般的に誰でも分かるように変数名を付けるのがよいので、可能であれば使わない方が好ましいかもしれませんね。
@@itgakko わざわざ回答を下さってありがとうございます!メンバ変数(特にクラス型の変数)、コンストラクタ、インスタンスの参照、インスタンスの関係性が理解出来ず、擬似言語を見ても何が何やらがさっぱりという感じで一瞬で置いてきぼりになってしまいました。
@@_link3263 なるほど、クラスの概念のところが困りどころといった感じですね。概念を理解する前に擬似言語を見てもやはり詰まってしまうと思いますので、まずは「クラスとはどういうものか」というところを理解するしかないと思います。私の動画では現状オブジェクト指向の動画はないので、まずは概念について、他のRUclipsrさんや、参考書で学習を深めるのが良いと思います。
直接関係ないですが、問1に「ageが4以上 and ageが9以下」ってのが有ったらそれでも正解になりますか?そして問3がそもそも何を言っているのか全く分かりません・・・他の方の質問さえわかっていないです。他の基本的な動画は視聴したのですが、落ち込みます。
質問ありがとうございます!正解になりますが、冗長なプログラムになるので解答の通り「ageが9以下」だけの方が望ましいですね。elseifの上に「if (age が 3以下) 」があるので、elseifと記述した時点で「ageが4以上」という条件が前提になります。なのでelseifの()内に「ageが4以上」と記述すると同じ条件を二重に記述してしまうことになります。問3はオブジェクト指向の問題ですね。こちらが難しいと感じる場合は先に以下の動画を見るのが良いと思います。【問題演習付き】科目Bオブジェクト指向完全攻略(基本情報技術者試験|アルゴリズム)ruclips.net/video/adjCffDTWnE/видео.html
問3について質問があります。プログラム中でelse文が実行される理由がわかりません。大域変数でListHeadは未定義になっていますし、if文が実行されれば追加文字が追加されて終了だと思います。else文を実行する時、(あ、い、う)に(え)を追加するとしたら、どの段階でListHeadに(あ)を代入したか知りたいです。よろしくお願いいたします🙇♀️
質問ありがとうございます!答えは単純で、appendメソッドが4回実行されたからですね。まず、おっしゃる通り大域変数ListHeadは未定義が格納されています。しかしこれはあくまで初期状態を表しています。質問頂いた「(あ、い、う)に(え)を追加する」ケースであれば、以下のように4回appendメソッドが実行されたことになります。append('あ')append('い')append('う')append('え')以上となります。ご不明点ありましたらご連絡いただければと思います。
なるほど!理解できました!ありがとうございます!
@user-vx8np2zs7i よかったです!
細かいことですがsparseはスペースじゃなくてスパースですよ(希薄な、まばらなという意味)
稚拙な質問で申し訳ないんですが、2問目の3回処理を繰り返すっていうのはarrayの要素数5➗2をしているという事でしょうか
質問ありがとうございます!ご質問いただいた内容は-----arrayの要素数 ÷ 2 の商 は「2」なのに3回繰り返すのはおかしいのではないか-----ということでしょうか?こちら3回ではなく2回処理を繰り返すのが正しい内容になります。本動画概要欄にて訂正させていただいております。以下に概要欄と同じ内容を記載しますので、こちらをご確認いただけますでしょうか。-----動画内に誤りがありましたのでこちらで訂正させて頂きます。 ■対象:動画内 06:15 付近のfor文の繰り返し回数の説明 ・誤:要素数が5なので1から3まで増やす、3回処理を繰り返す ・正:要素数が5なので1から2まで増やす、2回処理を繰り返す-----
20:00からの問題で、words.frtq(s1)が、s1の出現回数ではなくc1の出現回数になる理由を教えていただけますでしょうか。
質問ありがとうございます!関数probの先頭2行で c1 と c2 の値をそれぞれ s1 と s2 に格納しているためです。【プログラムの該当行】文字列型 s1 ← c1の1文字だけからなる文字列文字列型 s2 ← c2の1文字だけからなる文字列
3番のコンストラクタのところの引数qValでメンバ変数valを初期化するのところがよく分かりません。他のところは理解出来たのですが、この説明は何を行ってるのか詳しく知りたいです
コメントありがとうございます!コンストラクタなど、オブジェクト指向に関しては以下の動画で詳しく解説していますので、よろしければこちらの動画をご視聴ください!【問題演習付き】科目Bオブジェクト指向完全攻略(基本情報技術者試験|アルゴリズム)ruclips.net/video/adjCffDTWnE/видео.html
@@itgakko そちらの動画でも初期化のこと詳しく言われてなかったのでこれはどういうことなのかやっぱり知りたいです
27:37からわからなくなりました。sparsematrix(1)2sparsematrix(2)2sparsematrix(3)2までは理解できましたが次の行はsparsematrix(1)3sparsematrix(2)3sparsematrix(3)0だと思っていたのですが違うのですか。。。。全然わからない。。。。
for文でiもjも1ずつ増やすって書いてあるのでてっきり増えると思ってたのですが。。。
質問ありがとうございます!おそらくfor文が二重になっている場合の処理順に関するご質問だと思います。分かりやすいように簡単な例で説明しますね。for文が二重になっており i と j の値を足し算した結果を出力するプログラムです。-----for ( i を 1 から 2 まで 1ずつ増やす) for ( j を 1 から 3 まで 1ずつ増やす) ( i + j ) の値を出力する endforendfor-----この場合、出力する結果は以下のようになります。・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 = 5for文が二重になっている場合、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]に値を追加する処理)は実行されません。こちらも合わせてご確認いただければと思います。
プログラミングはちょっとだけ齧ってるからなんとかいけるかなーと思ったら、頭の中だけだと処理しきれなくてトレースするも、PC画面とメモ用紙の行き来に時間かかって結局ボロボロでした…😂0か100のやり方ではなく、動画参考にして必要な部分だけメモやトレースする対応にできるよう動画見て勉強します!(ちなみに2〜3問分くらい点数足りてませんでした)
勉強頑張って下さい!
@@itgakko ありがとうございます!
すみません、動画の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となりました。 私の解釈のミスに問題があると思うのですが、どうしても自分では理解しきれないので、よろしければご指摘のほどよろしくお願い致します。 長文失礼しました。
ご質問ありがとうございます。問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 となり、例の通りの答えになります。 何かご不明点ありましたらご連絡ください。
@@itgakko理解できましたあああ。たしかにfreq(s1+s2)の部分がfreq(s1)+freq(s2)になっていました。 丁寧すぎる解説のおかげで理解することができました。ありがとうございます。これから復習をし本試験に向け鍛錬していこうと思います。
@@user-uf7ei3px7c 承知しました!基本情報技術者試験の勉強頑張ってください🤗
問2について質問があるのですが、選択肢ウのarrayの要素数ーleft+1をした場合、3になってしまい、この場合配列の1と5を逆にしたことにならないと思うのですが、その原因を教えていただきたいです。
arrayの要素数=5、最初のleft=1だから5ー1+1=5ということになりますね。たぶん5-(1+1)=3と計算してしまっているのではないでしょうか?
コメント頂いている方の内容の通りです!leftの値=1の場合の時のことをおっしゃっていると思いますが、この場合 arrayの要素数 - left + 1 = 5 -1 +1 = 5 になります!arrayの要素数というのは、配列arrayの要素の数ということです。本問題ではarrayは{1, 2, 3, 4, 5}、要素の数が5なのでarrayの要素数は5になります。
@@user-tt7uk9gr9l コメントありがとうございます!
@@user-tt7uk9gr9l ありがとうございます!すみません、そのように計算していました。基本的なことを忘れずに勉強したいと思います。ありがとうございました!
早く解けるのは素晴らしいと思いますが、初心者の私にとってトレースしながら解くのが一番楽かもしれない。まだ理解するのには想像力が必要なのが苦痛です。解説ありがとうございます。
コメントありがとうございます!ご記載いただいた通り慣れないうちは力技でトレースした方が確実です。これに慣れてくると次第に書かなくても頭の中でできるようになってきます。基本情報技術者試験の勉強頑張って下さい!
科目bはサンプル問題さえ解ければ合格点取れるのでしょうか?
質問ありがとうございます!結論、分からないですね。しかし個人的な感覚で言えば、公式が出しているサンプル問題や過去問を全て「素早く」かつ「内容を理解」した上で解けているのであれば、科目B合格点は到達できると思います。
自分用 13:54
14:33 20:00
アルゴリズム問題で+とでたら、連結は知っているのですが、足し算のほうの+はでないのでしょうか?また、出る場合は、どのようにして見極めればよいのでしょうか?
質問ありがとうございます!以下のように見分ければ良いです。 ・計算対象が文字列の場合:文字列の連結を表す。 ・計算対象が数値の場合:足し算を表す。
自分が知識不足でした・・・ご丁寧に回答を教えていただき誠にありがとうございます!!@@itgakko
1問目意味わからんくらい簡単なのに3問目から難しくなりすぎでは。。
コメントありがとうございます!おっしゃる通りレベルが急に上がっています。他動画で難易度低めの問題中心の解説も行っているので、よければそちらも試してみてください。
この動画が理解できない人はまず何から理解すればいいのか、、、、😢
こちらから勉強をしていただくと良いと思います!【初心者向け】基本情報技術者試験 科目B|アルゴリズムをゼロから理解するruclips.net/video/waAwVXa9y2o/видео.html
サンプル問題が余裕で解けたから本試験受けたら505点で落ちた😢サンプル問題より余裕で難しかった
試験お疲れ様でした!本番試験は少なくともサンプル問題の最初の方よりは相当難易度が上がりますね!
うーん。。2問目から理解できない。説明が速いし、分解して説明してほしい。初心者にはきつい。
コメントありがとうございます!改善しますね!初心者の方向けにはこちらの動画があるのでよければお試しください!ruclips.net/video/waAwVXa9y2o/видео.htmlまた画面の歯車マークから再生速度が変更できますのでよければお試しください!
⚠学習前にご確認ください!
・誤りがあった場合に概要欄で訂正している場合があります。動画におかしな点があった場合、まずは概要欄のご確認をお願いします。
・動画で投影している教材は、本動画の概要欄からさいとうの公式LINEに登録頂くと無料でダウンロードできます!
※概要欄で訂正している内容が反映されたものをダウンロードできます。
2022年12月26日に、IPAから追加の問題サンプルが公開されています。
この動画を見た後に、是非腕試しで挑戦してみてくださいね。
www.jitec.ipa.go.jp/1_00topic/topic_20221226.html
非常にわかりやすくてありがたいです!
こちらの問題の解説はしますか?
@@orega_3ninbunni_naru ありがとうございます!
リンク先の問題解説は1月後半に投稿予定です🤗
すごくわかりやすかったです!リンク先の問題の解説も楽しみにしています。
@@user-dr8fk2rg2h コメントありがとうございます!
リンク先の問題解説作成中です!少々お待ちください🤗
すごい。。。すごくわかりやすい・・・・。こんな先生の授業がただなんて!最高です。
嬉しいコメントありがとうございます!
動画で投影している教材はさいとうの公式LINEに登録頂くと無料でダウンロードできます!
無料で教材が欲しい方は概要欄からLINEに登録してみて下さいね!
今回の動画の教材名:【2023年版】基本情報技術者試験完全攻略(科目B解説編)
本日2回目の基本情報技術者試験を受験してきました。
前回科目Bが540点で惜しくも不合格となってしまったのですが、今回は630点でなんとか合格できてそうです!!
アルゴリズムに対しての苦手意識が強く勉強に苦戦しましたが、色々動画を視聴させていただき、合格ラインに載せることができました。
大変お世話になりました🎉
合格ライン到達おめでとうございます!
苦手克服素晴らしいですね!
いつもお世話になっております。
大変恐縮ですが自分用コメントをさせていただきます
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に値を追加するタイミング
素晴らしい!
問2について質問したいです。
配列を逆順にするために、
right変数に5を代入してarray[5]、
left変数に1を代入してarray[1]にしてから処理を始めるロジックは理解していると考えています。
しかし選択肢ウの、
arrayの要素数-left+1の理屈がよく分からないです。
繰り返しの最初でarrayの要素数-left+1をしてしまうと、
5-1+1にしてしまうと3になるのでは?と思ったのですが、シンプルに左から計算したら5になりますね。
ちょっと疲れてたみたいです。理解しました。
解決してよかったです!
わかりやすかったです!
ありがとうございます!!
頭の悪い質問ですみません。。
arrayの要素数は5だと思うのですが
5÷2の商が3になるのは何故ですか?
大変失礼いたしました。誤りです。
動画内6:15あたりからの部分を指しておられると思うのですが、
ご指摘の通り、要素数:5 ÷ 2 = 2 でfor文は 1から2の2回繰り返すが正しい値となります。
補足させて頂くと、繰り返しが2回で問題ない理由は、
・1回目のfor文で1番目⇄5番目、
・2回目のfor文で2番目⇄4番目
を入れ替えることになり3番目は移動させなくても2回のfor文で配列の中身が全て入れ替わっている為です。
ご指摘いただきありがとうございました。
動画概要欄にも該当箇所は訂正の旨記載させて頂きます。
@@itgakko ご丁寧にありがとうございます!!
理解しました。
アルゴリズムにまだまだ拒否反応が出てしまうのですがコツコツ頑張ります。
これからも動画楽しみにしてます!
問2ですが、arrayの要素数というのは、{1,2,3,4,5}の場合5というのは分かるのですが、例えば{3,4,5,6,7}の場合は5、{8,9,10}の場合は3、{11}の場合は1といった解釈で合っていますでしょうか?
また、arrayの要素数-left+1の式が必要な理由も教えていただけますか?
質問ありがとうございます!回答しますね。
>{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」になる理由を説明させて頂いております。
おそらくその解説の中のどこかに不明点が出たものだと思いますので、
適切に質問に回答させて頂くためにご教授頂ければと思います。
@@itgakko
丁寧に回答していただき回答ありがとうございます。説明下手ですみません。
leftの要素数を変化させるため、「arrayの要素数-left+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 しているかはわかると思います。
以上、ご不明点あればご連絡いただければと思います。
ありがとうございます。混乱していましたが、やっと理解できました!@@itgakko
よかったです!
質問です。
アルゴリズムの結果型の二次元配列の問題で、sparseMatrixが[2, 3, 2]の箇所がありますが
2回目のfor文でsparseMatrix[2,2,2]なのに、3回目のfor文でなぜsparseMatrix[2, 3, 2]になるのでしょう?
行と列がfor文でインクリメントされているので、[2,3,2]になるのが理解できません。
質問ありがとうございます。以下に回答しますね。
結論としては、動画で解説している内容が正しいです。
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に値を追加するタイミング
以上となります。ご不明点あればご連絡いただければと思います。
@@itgakko こんばんは!
ご丁寧に解説有難う御座いました。そうでしたね、ネストしたfor文は入れ子になっているfor文が全部回ってから最初のfor文に戻るんでしたね。理解できました、有難う御座います!
いざ、他の問題で実装型を解こうとすると全く解けません。。。問題文と照らし合わせるのは出来てるんですがさらに難しい問題だと想像しないと解けない部分があると思うんですがその想像?がどうすれば良いのかわかりません。結局2択になって間違いが多いです
対策はどうすればいいでしょうか?
質問ありがとうございます!
お話を聞く限りプログラムの流れを読む力がまだ足りてないのだと思います。解く方針が分かってもプログラム自体に慣れていないうちは答えを導くのは難しいです。
まず結果型の問題を多く解いてみて、プログラム自体に慣れるということをしてみた方がいいと思います。
この動画の問3の質問です。選択肢にcurrがあるから、currを代入する以前の流れでcurrを代入というのが出ていないからcurrを代入するのはなんとなくわかりました。けれど選択肢にprev.next.nextがあったらその選択肢を選んでしまいそうです。prev.next.nextが正解にならない理由を教えてくださいますか。サンプル問題20問の問10とごっちゃになってしまい、理解できないので質問させてください。
質問ありがとうございます!
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 は答えになり得ません。
以上、ご不明点ありましたらご連絡頂ければと思います。
科目Bの解説動画はあまりないので非常に助かります!
また、オブジェクト指向がよく理解出来ないのですが、科目B対策としては
どのように学習すれば良いのでしょうか?
それと、以下は問題とあまり関係ない質問ですみませんが、「qVAL」の様に
変数の先頭にqがついている変数をたまに見かけるのですが、
どのような時に使われる事が多いのでしょうか?
質問ありがとうございます。
オブジェクト指向ですが、どのあたりの理解に不安がありますでしょうか?
科目B対策としては、一度概念さえ理解してしまえば、
後は問題演習というのが一番よいと思いますが、
人によって苦手な箇所は結構変わるので聞かせていただきました。
また変数の先頭に「q」がついている件、
すみませんこちらではわかりませんでした。
変数名は一般的に誰でも分かるように変数名を付けるのがよいので、
可能であれば使わない方が好ましいかもしれませんね。
@@itgakko
わざわざ回答を下さってありがとうございます!
メンバ変数(特にクラス型の変数)、コンストラクタ、インスタンスの参照、インスタンスの関係性が理解出来ず、擬似言語を見ても何が何やらがさっぱりという感じで一瞬で置いてきぼりになってしまいました。
@@_link3263
なるほど、クラスの概念のところが困りどころといった感じですね。
概念を理解する前に擬似言語を見てもやはり詰まってしまうと思いますので、
まずは「クラスとはどういうものか」というところを理解するしかないと思います。
私の動画では現状オブジェクト指向の動画はないので、
まずは概念について、他のRUclipsrさんや、参考書で学習を深めるのが良いと思います。
直接関係ないですが、問1に「ageが4以上 and ageが9以下」ってのが有ったらそれでも正解になりますか?
そして問3がそもそも何を言っているのか全く分かりません・・・他の方の質問さえわかっていないです。他の基本的な動画は視聴したのですが、落ち込みます。
質問ありがとうございます!
正解になりますが、冗長なプログラムになるので
解答の通り「ageが9以下」だけの方が望ましいですね。
elseifの上に「if (age が 3以下) 」があるので、
elseifと記述した時点で「ageが4以上」という条件が前提になります。
なのでelseifの()内に「ageが4以上」と記述すると同じ条件を二重に記述してしまうことになります。
問3はオブジェクト指向の問題ですね。
こちらが難しいと感じる場合は先に以下の動画を見るのが良いと思います。
【問題演習付き】科目Bオブジェクト指向完全攻略(基本情報技術者試験|アルゴリズム)
ruclips.net/video/adjCffDTWnE/видео.html
問3について質問があります。
プログラム中でelse文が実行される理由がわかりません。
大域変数でListHeadは未定義になっていますし、if文が実行されれば追加文字が追加されて終了だと思います。
else文を実行する時、
(あ、い、う)に(え)を追加するとしたら、どの段階でListHeadに(あ)を代入したか知りたいです。
よろしくお願いいたします🙇♀️
質問ありがとうございます!
答えは単純で、appendメソッドが4回実行されたからですね。
まず、おっしゃる通り大域変数ListHeadは未定義が格納されています。しかしこれはあくまで初期状態を表しています。
質問頂いた「(あ、い、う)に(え)を追加する」ケースであれば、以下のように4回appendメソッドが実行されたことになります。
append('あ')
append('い')
append('う')
append('え')
以上となります。ご不明点ありましたらご連絡いただければと思います。
なるほど!理解できました!
ありがとうございます!
@user-vx8np2zs7i よかったです!
細かいことですがsparseはスペースじゃなくてスパースですよ(希薄な、まばらなという意味)
ありがとうございます!!
稚拙な質問で申し訳ないんですが、2問目の3回処理を繰り返すっていうのは
arrayの要素数5➗2をしているという事でしょうか
質問ありがとうございます!
ご質問いただいた内容は
-----
arrayの要素数 ÷ 2 の商 は「2」なのに
3回繰り返すのはおかしいのではないか
-----
ということでしょうか?
こちら3回ではなく2回処理を繰り返すのが正しい内容になります。
本動画概要欄にて訂正させていただいております。
以下に概要欄と同じ内容を記載しますので、
こちらをご確認いただけますでしょうか。
-----
動画内に誤りがありましたのでこちらで訂正させて頂きます。
■対象:動画内 06:15 付近のfor文の繰り返し回数の説明
・誤:要素数が5なので1から3まで増やす、3回処理を繰り返す
・正:要素数が5なので1から2まで増やす、2回処理を繰り返す
-----
20:00からの問題で、words.frtq(s1)が、s1の出現回数ではなくc1の出現回数になる理由を教えていただけますでしょうか。
質問ありがとうございます!
関数probの先頭2行で c1 と c2 の値をそれぞれ s1 と s2 に格納しているためです。
【プログラムの該当行】
文字列型 s1 ← c1の1文字だけからなる文字列
文字列型 s2 ← c2の1文字だけからなる文字列
3番のコンストラクタのところの引数qValでメンバ変数valを初期化するのところがよく分かりません。他のところは理解出来たのですが、この説明は何を行ってるのか詳しく知りたいです
コメントありがとうございます!
コンストラクタなど、オブジェクト指向に関しては以下の動画で詳しく解説していますので、よろしければこちらの動画をご視聴ください!
【問題演習付き】科目Bオブジェクト指向完全攻略(基本情報技術者試験|アルゴリズム)
ruclips.net/video/adjCffDTWnE/видео.html
@@itgakko そちらの動画でも初期化のこと詳しく言われてなかったのでこれはどういうことなのかやっぱり知りたいです
27:37からわからなくなりました。
sparsematrix(1)2
sparsematrix(2)2
sparsematrix(3)2
までは理解できましたが
次の行は
sparsematrix(1)3
sparsematrix(2)3
sparsematrix(3)0
だと思っていたのですが違うのですか。。。。全然わからない。。。。
for文でiもjも1ずつ増やすって書いてあるのでてっきり増えると思ってたのですが。。。
質問ありがとうございます!
おそらく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]に値を追加する処理)は実行されません。
こちらも合わせてご確認いただければと思います。
プログラミングはちょっとだけ齧ってるからなんとかいけるかなーと思ったら、頭の中だけだと処理しきれなくてトレースするも、PC画面とメモ用紙の行き来に時間かかって結局ボロボロでした…😂
0か100のやり方ではなく、動画参考にして必要な部分だけメモやトレースする対応にできるよう動画見て勉強します!
(ちなみに2〜3問分くらい点数足りてませんでした)
勉強頑張って下さい!
@@itgakko ありがとうございます!
すみません、動画の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となりました。
私の解釈のミスに問題があると思うのですが、どうしても自分では理解しきれないので、よろしければご指摘のほどよろしくお願い致します。
長文失礼しました。
ご質問ありがとうございます。問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 となり、例の通りの答えになります。
何かご不明点ありましたらご連絡ください。
@@itgakko理解できましたあああ。たしかにfreq(s1+s2)の部分がfreq(s1)+freq(s2)になっていました。
丁寧すぎる解説のおかげで理解することができました。ありがとうございます。これから復習をし本試験に向け鍛錬していこうと思います。
@@user-uf7ei3px7c
承知しました!
基本情報技術者試験の勉強頑張ってください🤗
問2について質問があるのですが、選択肢ウのarrayの要素数ーleft+1をした場合、3になってしまい、この場合配列の1と5を逆にしたことにならないと思うのですが、その原因を教えていただきたいです。
arrayの要素数=5、最初のleft=1
だから
5ー1+1=5
ということになりますね。
たぶん5-(1+1)=3と計算してしまっているのではないでしょうか?
コメント頂いている方の内容の通りです!
leftの値=1の場合の時のことをおっしゃっていると思いますが、
この場合 arrayの要素数 - left + 1 = 5 -1 +1 = 5 になります!
arrayの要素数というのは、配列arrayの要素の数ということです。
本問題ではarrayは{1, 2, 3, 4, 5}、要素の数が5なので
arrayの要素数は5になります。
@@user-tt7uk9gr9l コメントありがとうございます!
@@user-tt7uk9gr9l ありがとうございます!
すみません、そのように計算していました。基本的なことを忘れずに勉強したいと思います。ありがとうございました!
早く解けるのは素晴らしいと思いますが、初心者の私にとってトレースしながら解くのが一番楽かもしれない。まだ理解するのには想像力が必要なのが苦痛です。解説ありがとうございます。
コメントありがとうございます!
ご記載いただいた通り慣れないうちは力技でトレースした方が確実です。
これに慣れてくると次第に書かなくても頭の中でできるようになってきます。
基本情報技術者試験の勉強頑張って下さい!
科目bはサンプル問題さえ解ければ合格点取れるのでしょうか?
質問ありがとうございます!
結論、分からないですね。
しかし個人的な感覚で言えば、公式が出しているサンプル問題や過去問を全て「素早く」かつ「内容を理解」した上で解けているのであれば、科目B合格点は到達できると思います。
自分用 13:54
14:33 20:00
アルゴリズム問題で+とでたら、連結は知っているのですが、足し算のほうの+はでないのでしょうか?また、出る場合は、どのようにして見極めればよいのでしょうか?
質問ありがとうございます!
以下のように見分ければ良いです。
・計算対象が文字列の場合:文字列の連結を表す。
・計算対象が数値の場合:足し算を表す。
自分が知識不足でした・・・ご丁寧に回答を教えていただき誠にありがとうございます!!@@itgakko
よかったです!
1問目意味わからんくらい簡単なのに3問目から難しくなりすぎでは。。
コメントありがとうございます!
おっしゃる通りレベルが急に上がっています。
他動画で難易度低めの問題中心の解説も行っているので、
よければそちらも試してみてください。
この動画が理解できない人はまず何から理解すればいいのか、、、、😢
こちらから勉強をしていただくと良いと思います!
【初心者向け】基本情報技術者試験 科目B|アルゴリズムをゼロから理解する
ruclips.net/video/waAwVXa9y2o/видео.html
サンプル問題が余裕で解けたから本試験受けたら505点で落ちた😢
サンプル問題より余裕で難しかった
試験お疲れ様でした!
本番試験は少なくともサンプル問題の最初の方よりは相当難易度が上がりますね!
うーん。。2問目から理解できない。説明が速いし、分解して説明してほしい。初心者にはきつい。
コメントありがとうございます!
改善しますね!
初心者の方向けにはこちらの動画があるのでよければお試しください!
ruclips.net/video/waAwVXa9y2o/видео.html
また画面の歯車マークから再生速度が変更できますのでよければお試しください!