WebページやGitHub、Notionなどにそのまま貼り付けられるMarkdown形式で、**「アルゴリズム100本ノック:第1回(基礎編)」**を作成しました。 ご自身の学習進捗管理や、ブログなどへの掲載にご活用ください。
基本情報技術者試験(科目B)アルゴリズム100本ノック¶
第1回:基本構造・データ構造・探索(問1〜10)¶
問1:変数の入れ替え(トレース)¶
次のプログラムを実行したとき、変数 x の値はいくらになるか。
-
A) 10
-
B) 20
-
C) 30
-
D) 0
問2:条件分岐の実行回数¶
次のプログラムにおいて、条件式の判定回数は合計で何回か。
* A) 2回 * B) 3回 * C) 5回 * D) 6回問3:配列と偶数の合計¶
要素数5の配列 A (添字は1から始まる) の中身が {3, 1, 4, 5, 2} であるとき、次の処理を実行した後の sum の値はいくらか。
* A) 6 * B) 15 * C) 9 * D) 4問4:スタックの操作¶
「スタック」に対して、次の順で操作を行ったとき、最後に「ポップ(取り出し)」される値はどれか。
* A) 10 * B) 20 * C) 30 * D) なし問5:キューの操作¶
「キュー」に対して、次の順で操作を行ったとき、データが取り出される順番として正しいものはどれか。
* A) A, B * B) B, A * C) A, C * D) B, C問6:線形探索の計算量¶
線形探索(リニアサーチ)において、要素数 n の配列から特定の値をさがすとき、最悪の場合の比較回数は何回か。 * A) 1回 * B) n / 2 回 * C) n 回 * D) log2 n 回
問7:二分探索の効率¶
整列済みの配列に対して「二分探索」を行う。要素数が15個の場合、最大で何回の比較で目的のデータを見つけられるか(または存在しないと判定できるか)。 * A) 4回 * B) 15回 * C) 8回 * D) 7回
問8:再帰関数の戻り値¶
次の再帰関数 f(n) について、f(4) を呼び出したときの戻り値はいくらか。
* A) 4 * B) 10 * C) 24 * D) 5問9:ユークリッドの互除法¶
2つの整数 a, b の最大公約数を求めるアルゴリズムにおいて、a = 48, b = 18 のとき、最初の計算ステップ(a ÷ b の余り)の結果はいくらか。 * A) 6 * B) 12 * C) 2 * D) 30
問10:バブルソートの途中経過¶
バブルソートを用いて配列 {3, 2, 1} を昇順に並べ替える。左から右へ隣り合う要素を比較・入れ替える「走査」を1回完了した直後の配列の状態はどうなるか。 * A) {1, 2, 3} * B) {2, 1, 3} * C) {2, 3, 1} * D) {3, 2, 1}
解答一覧(自己採点用)¶
- B (値の入れ替え)
- C (ループ回数分判定される)
- A (4 + 2 = 6)
- C (最後にプッシュした30がポップされる)
- A (先入れ先出しなのでAの次にB)
- C (最後にある場合が最悪)
- A (2^4 = 16 なので4回)
- B (4+3+2+1=10)
- B (48 ÷ 18 = 2 余り 12)
- B (最大の3が右端に移動する)