FUNDAMENTAL INFORMATION TECHNOLOGY ENGINEER
データ構造及びアルゴリズムの問題一覧
基本情報技術者の「データ構造及びアルゴリズム」分野を、問題ごとの解説ページで確認できます。
SUMMARY
出題数と難易度
掲載問題数
90問
難しい
69問
標準
16問
易しい
5問
QUESTION LIST
問題一覧
挿入ソート
配列 a={5,2,4,6,1,3} に対して、次の手続 partialInsertion(a) を実行したときの戻り値はどれか。 ○整数型: partialInsertion(整…
選択ソート
配列 a={7,2,6,3,5} に対して、次の手続 partialSelection(a) を実行したときの戻り値はどれか。 ○整数型: partialSelection(整数型…
隣接行列
次の無向グラフを隣接行列に入れるプログラムを実行したとき,戻り値はどれか。 整数型の二次元配列: m[1..5, 1..5] ← すべて0 辺の配列: e ← {{1,2}, {1…
幅優先探索
次の手続 bfsOrder() を実行したときの戻り値はどれか。 ○整数型: bfsOrder() グラフの辺: (1,2), (1,3), (2,5), (3,4), (3,6)…
二次元配列
次の二次元配列処理を実行したとき,戻り値はどれか。配列の要素番号は1から始まる。 整数型の二次元配列: m ← {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}} …
二次元配列
二次元配列 m={{2,5,1,4},{3,6,2,1},{4,1,5,2}} に対して、次の手続 matrixHard(m) を実行したときの戻り値はどれか。 ○整数型: mat…
文字列処理
次の文字列処理を実行したとき,戻り値はどれか。 文字列型: s ← "AABBAAC" 整数型: i, count ← 0 for (i を 2 から sの文字…
文字列処理
文字列 s="AABCCBAA" に対して、次の手続 runScore(s) を実行したときの戻り値はどれか。 ○整数型: runScore(文字列型: s) 整数型: i, ru…
ビット処理
次の手続 bitOddScore(45) を実行したときの戻り値はどれか。 ○整数型: bitOddScore(整数型: n) 整数型: pos ← 1, c ← 0, bit w…
ビット処理
次のビット演算を実行したとき,戻り値はどれか。13は2進数で1101,5は2進数で0101とする。 整数型: x ← 13 整数型: mask ← 5 整数型: y ← x XOR…
ハッシュ表
次の手続 hashProbeScore() を実行したときの戻り値はどれか。 ○整数型: hashProbeScore() 整数型の配列: key ← {14, 22, 30, 9…
ハッシュ表
次の手続 hashPlaceScore() を実行したときの戻り値はどれか。 ○整数型: hashPlaceScore() 整数型の配列: key ← {8, 15, 3, 10}…
累積和
配列 a={3,1,4,1,5,9} に対して、次の手続 prefixQuery(a) を実行したときの戻り値はどれか。 ○整数型: prefixQuery(整数型の配列: a) …
スライディングウィンドウ
配列 a={1,3,2,1,4,2} に対して、次の手続 countWindows(a) を実行したときの戻り値はどれか。 ○整数型: countWindows(整数型の配列: a…
二重ループ
配列 a={2,5,1,4,3} に対して、次の手続 breakPair(a) を実行したときの戻り値はどれか。 ○整数型: breakPair(整数型の配列: a) 整数型: i…
break処理
次のプログラムを実行したとき,戻り値はどれか。配列の要素番号は1から始まる。 整数型の配列: a ← {5, 9, 4, 7} 整数型: i, s ← 0 for (i を 1 か…
マージ処理
配列 a={1,4,7}, b={2,4,6,8} に対して、次の手続 mergeScore(a,b) を実行したときの戻り値はどれか。 ○整数型: mergeScore(整数型の…
二ポインタ
昇順配列 a={1,2,4,6,9} に対して、次の手続 twoPointerScore(a,10) を実行したときの戻り値はどれか。 ○整数型: twoPointerScore(…
動的計画法
配列 a={3,1,2,5,4} に対して、次の手続 lisScore(a) を実行したときの戻り値はどれか。 ○整数型: lisScore(整数型の配列: a) 整数型の配列: …
貪欲法
次の手続 greedySelect() を実行したときの戻り値はどれか。 ○整数型: greedySelect() 区間は終了時刻の昇順に (1,3), (2,5), (4,7),…
配列トレース
次のプログラムを実行したとき,戻り値はどれか。配列の要素番号は1から始まる。 整数型の配列: a ← {4, 9, 2, 7, 6} 整数型: i, s ← 0 for (i を …
配列トレース
次のプログラムを実行したとき,戻り値はどれか。配列の要素番号は1から始まる。 整数型の配列: a ← {3, 8, 5, 7, 7, 2} 整数型: i, count ← 0 fo…
文字列処理
次のプログラムを実行したとき,戻り値はどれか。 文字列型: s ← "ABACAD" 整数型: i, count ← 0 for (i を 2 から sの文字数…
文字列処理
次のプログラムを実行したとき,戻り値はどれか。 文字列型: s ← "AABBBAAC" 整数型: i, cur ← 1, max ← 1 for (i を 2…
スタック
次の手続 stackScore() を実行したときの戻り値はどれか。 ○整数型: stackScore() スタック st ← 空 整数型: s ← 0 操作列: push 2, …
キュー
次の手続 queueScore() を実行したときの戻り値はどれか。 ○整数型: queueScore() キュー q ← 空 整数型: x, y enqueue(q, 4) en…
探索
回転済み昇順配列 a={7,9,1,3,5} に対して、次の手続 rotatedSearch(a,3) を実行したときの戻り値はどれか。 ○整数型: rotatedSearch(整…
探索
昇順配列 a={1,2,2,2,4,5,5} に対して、次の手続 countKey(a,2) を実行したときの戻り値はどれか。 ○整数型: countKey(整数型の配列: a, …
整列
次の挿入ソートをi=4まで実行したとき,戻り値はどれか。配列の要素番号は1から始まる。 整数型の配列: a ← {6, 3, 5, 2, 4} 整数型: i, j, key for…
整列
次の選択ソートを3回だけ実行したとき,戻り値はどれか。 整数型の配列: a ← {8, 1, 6, 3, 7} 整数型: i, j, min, tmp for (i を 1 から …
二次元配列
次のプログラムを実行したとき,戻り値はどれか。 整数型の二次元配列: m ← {{2, 5, 1, 4}, {3, 2, 6, 1}, {0, 7, 2, 3}} 整数型: i, …
二次元配列
次のプログラムを実行したとき,戻り値はどれか。 整数型の二次元配列: m ← {{5, 1, 2}, {3, 4, 6}, {7, 8, 9}} 整数型: i, j, s ← 0 …
再帰
次の再帰関数を実行したとき,戻り値はどれか。 ○整数型: f(整数型: n) if (n ≦ 1) return 1 elseif (n mod 2 = 0) return f(n…
再帰
次の再帰関数を実行したとき,戻り値はどれか。ここで÷は整数除算である。 ○整数型: g(整数型: n) if (n = 0) return 0 endif 整数型: t ← g(n…
グラフ探索
次の幅優先探索を実行したとき,戻り値はどれか。頂点番号は1から始まる。 整数型の配列の配列: adj ← {{2,3}, {4,5}, {5}, {6}, {6}, {}} 整数型…
グラフ探索
次の深さ優先探索をスタックで実行したとき,戻り値はどれか。 整数型の配列の配列: adj ← {{2,3}, {4}, {4,5}, {6}, {6}, {}} 整数型の配列: s…
ハッシュ表
次の線形探索法のハッシュ表で,28を見つけるまでの参照回数はどれか。 整数型の配列: table[0..6] ← {空, 空, 空, 空, 空, 空, 空} 整数型の配列: key…
ビット処理
次のビット処理を実行したとき,戻り値はどれか。ここで∧はビットAND,<<と>>はビットシフトである。 整数型: b ← 45, c ← 0 while (…
累積和
次のプログラムを実行したとき,戻り値はどれか。配列pの添字は0から始まる。 整数型の配列: a ← {3, 1, 4, 1, 5} 整数型の配列: p ← {0, 0, 0, 0,…
スライディングウィンドウ
次の長さ3の区間を調べるプログラムを実行したとき,戻り値はどれか。 整数型の配列: a ← {2, 1, 3, 2, 4, 1} 整数型: left, right, sum ← 0…
二重ループ
次の二重ループを実行したとき,戻り値はどれか。 整数型の配列: a ← {3, 1, 4, 2, 5} 整数型: i, j, count ← 0 for (i を 1 から aの要…
二重ループ
次の二重ループを実行したとき,戻り値はどれか。 整数型の配列: a ← {4, 1, 3, 2} 整数型: i, j, count ← 0 for (i を 1 から aの要素数 …
マージ処理
次のマージ処理を途中まで実行したとき,戻り値はどれか。 整数型の配列: a ← {1, 4, 6, 9} 整数型の配列: b ← {2, 4, 5, 8} 整数型: i ← 1, …
二ポインタ
次の二ポインタ法で,和が8以下の組の数を求める。戻り値はどれか。 整数型の配列: a ← {1, 2, 3, 5, 7} 整数型: left ← 1, right ← 5, cou…
動的計画法
次の動的計画法で,合計5を作る組合せ数を求める。戻り値はどれか。 整数型の配列: coin ← {1, 2, 5} 整数型の配列: dp[0..5] ← {1, 0, 0, 0, …
貪欲法
次の貪欲法で選択される仕事数はどれか。各行は{開始時刻, 終了時刻}で,終了時刻の昇順に並んでいる。 整数型の二次元配列: job ← {{1,3}, {2,5}, {4,7}, …
手続呼出し
次のプログラムで,procMainを呼び出したときの出力順序はどれか。 ○procA() "A" を出力する ○procB() "B" を出…
手続呼出し
次の再帰的な手続を呼び出したとき,出力順序はどれか。 ○proc(整数型: x) x を出力する if (x > 1) proc(x - 2) endif proc(5) を呼び出…
木構造
次の木構造を再帰的に評価したとき,戻り値はどれか。配列の要素番号は1から始まる。 整数型の配列: value ← {5, 2, 4, 1, 3} 整数型の配列: left ← {2…
グラフ
次のトポロジカルソートを実行したとき,戻り値はどれか。 整数型の配列の配列: edge ← {{3}, {3,4}, {5}, {5}, {6}, {}} 整数型の配列: inde…
配列トレース
次のプログラムを実行したとき,戻り値はどれか。配列の要素番号は1から始まる。 整数型の配列: a ← {6, 1, 4, 9, 2} 整数型: i, s ← 0 for (i を …
配列トレース
次のプログラムを実行したとき,戻り値はどれか。配列の要素番号は1から始まる。 整数型の配列: a ← {5, 3, 8, 2, 7} 整数型: i, diff, best ← -9…
文字列処理
次のプログラムを実行したとき,戻り値はどれか。文字列の文字番号は1から始まる。 文字列: s ← "ABBACCC" 整数型: i, count ← 1 for (i を 2 から…
文字列処理
次のプログラムを実行したとき,戻り値はどれか。文字列の文字番号は1から始まる。 文字列: s ← "101001" 文字型: prev ← s[1] 整数型: i, count ←…
スタック
次の後置記法をスタックで評価したとき,戻り値はどれか。 文字列型の配列: token ← {"5", "3", "+", "2", "*", "4", "-"} 整数型のスタック:…
キュー
次の循環キュー操作を実行したとき,戻り値はどれか。enqueueはrear位置へ格納してrearを1進め,dequeueはfront位置から取り出してfrontを1進める。 整数型…
探索
次の二分探索で,x×xが50以上となる最小のxを求める。戻り値はどれか。 整数型: left ← 1, right ← 10, mid while (left < right) m…
探索
次の探索で,keyより大きい最初の要素番号を求める。戻り値はどれか。 整数型の配列: a ← {1, 2, 2, 2, 4, 5} 整数型: key ← 2 整数型: left ←…
整列
次のクイックソートの分割処理を1回実行したとき,pivotの最終位置はどれか。配列の要素番号は1から始まる。 整数型の配列: a ← {6, 2, 7, 3, 5} 整数型: pi…
整列
次のバブルソートを実行したとき,戻り値はどれか。 整数型の配列: a ← {3, 1, 2, 4} 整数型: pass ← 0 論理型: swapped ← true while …
二次元配列
次のプログラムを実行したとき,戻り値はどれか。行・列番号は1から始まる。 整数型の二次元配列: m ← {{2, 1, 3}, {4, 5, 6}, {7, 0, 8}} 整数型:…
二次元配列
次の二次元配列処理を実行したとき,戻り値はどれか。 整数型の二次元配列: m ← {{3,1,4}, {2,5,0}, {6,2,7}} 整数型: i, j, count ← 0 …
再帰
次の再帰関数を実行したとき,戻り値はどれか。ここで÷は整数除算である。 ○整数型: h(整数型: n) if (n < 10) return n else return (n mo…
再帰
次の再帰関数を実行したとき,戻り値はどれか。 ○整数型: p(整数型: n) if (n = 0) return 0 elseif (n mod 2 = 0) return p(n…
グラフ探索
次のダイクストラ法で,頂点1から頂点5への最短距離はどれか。 頂点1から5への最短距離を求める。 辺と重み: (1,2,2), (1,3,5), (2,3,1), (2,4,4),…
グラフ探索
次の深さ優先探索を実行したとき,戻り値はどれか。 整数型の二次元配列: g ← {{0,1,1,0,0}, {0,0,0,1,0}, {0,0,0,1,1}, {0,0,0,0,0…
ハッシュ表
次の線形探索法のハッシュ表で,11を見つけるまでの参照回数はどれか。 整数型の配列: table[0..7] ← {空, 空, 空, 空, 空, 空, 空, 空} 整数型の配列: …
ビット処理
次のプログラムを実行したとき,戻り値はどれか。整数は8ビットで考える。 整数型: x ← 182 // 2進数で10110110 整数型: mask ← 204 // 2進数で11…
累積和
次のプログラムを実行したとき,戻り値はどれか。配列の要素番号は1から始まる。 整数型の配列: a ← {4, 1, 7, 3, 6, 2} 整数型の配列: prefix prefi…
スライディングウィンドウ
長さ3の連続部分列のうち,和が10を超え,かつ偶数であるものの個数を求める。戻り値はどれか。 整数型の配列: a ← {5, 2, 4, 7, 1, 6} 整数型: i, s, c…
二重ループ
次のプログラムを実行したとき,戻り値はどれか。配列の要素番号は1から始まる。 整数型の配列: a ← {2, 5, 1, 4, 3, 6} 整数型: i, j, count ← 0…
二重ループ
次のプログラムを実行したとき,戻り値はどれか。行・列番号は1から始まる。 整数型の二次元配列: m ← {{2, 5, 1, 4}, {3, 1, 6, 2}, {7, 2, 1,…
マージ処理
整列済み配列a,bに共通して現れる値を,重複も含めて数える。戻り値はどれか。 整数型の配列: a ← {1, 2, 2, 4, 7} 整数型の配列: b ← {2, 2, 3, 4…
二ポインタ
次のプログラムを実行したとき,戻り値はどれか。文字番号は1から始まる。 文字列: s ← "abxcdba" 整数型: left ← 1, right ← sの文字数, miss …
動的計画法
隣り合う要素を同時に選ばないという条件で,選んだ要素の合計の最大値を求める。戻り値はどれか。配列の要素番号は1から始まる。 整数型の配列: a ← {4, 1, 7, 3, 6} …
貪欲法
終了時刻の早い順に並んだ作業を,重ならないように貪欲に選ぶ。戻り値はどれか。配列の要素番号は1から始まる。 整数型の配列: start ← {1, 2, 4, 6, 7} 整数型の…
手続呼出し
次の手続を main から実行したとき,出力される文字列はどれか。 手続 main() p1() print("M") end 手続 p1() print("A") p2() pr…
再帰的手続
次の再帰的手続 f(5) を実行したとき,出力される文字列はどれか。 手続 f(整数型: n) if (n ≦ 0) return endif print(n) f(n - 2) …
木構造
次の二分木を postorder(左,右,根)でたどる。4番目に訪問する頂点はどれか。 left[1]=2, right[1]=3 left[2]=4, right[2]=0 le…
トポロジカルソート
次の有向非循環グラフを,入次数0の頂点を小さい番号から取り出す方法でトポロジカルソートする。4番目に出力される頂点はどれか。 辺: 1→3, 2→3, 2→4, 3→5, 4→5 …
ビット処理
次のプログラムを実行したときの戻り値はどれか。 8ビット型: b ← 11010110 8ビット型: r ← 00000000 整数型: i, bit for (i を 1 から …
ビット処理
次のプログラムを実行したときの戻り値はどれか。 8ビット型: b ← 10110100 整数型: i, bit, prev ← 0, count ← 0 for (i を 1 から…
配列トレース
次のプログラムを実行したときの戻り値はどれか。 整数型の配列: a ← {3, 1, 4, 1, 5} 整数型: i, s ← 0 for (i を 1 から 5 まで 1 ずつ増…
文字列処理
次のプログラムを実行したときの戻り値はどれか。 文字列型: s ← "AABBBCA" 整数型: i, current ← 1, best ← 1 for (i を 2 から sの…
スタック
次のスタック操作を実行したとき,最後にスタックの一番上にある値はどれか。 push(4) push(7) push(2) x ← pop() y ← pop() push(y - …
循環キュー
次の循環キュー操作を実行したとき,戻り値はどれか。frontは次に取り出す位置,rearは次に格納する位置を表す。 整数型: size ← 5 整数型: front ← 1, re…
二分探索
回転済みの昇順配列からkeyを探す。次のプログラムを実行したとき,戻り値はどれか。配列の要素番号は1から始まる。 整数型の配列: a ← {6, 8, 1, 3, 5} 整数型: …
整列
次のクイックソートの分割処理を実行した後,戻り値はどれか。配列の要素番号は1から始まる。 整数型の配列: a ← {5, 1, 6, 3, 4} 整数型: pivot ← a[5]…
グラフ探索
次の幅優先探索を実行したとき,戻り値はどれか。頂点番号は1から始まる。 隣接リスト: adj[1]={2,3}, adj[2]={4,5}, adj[3]={5}, adj[4]=…
スライディングウィンドウ
和が7以下である連続部分列の最大長を求める。戻り値はどれか。 整数型の配列: a ← {2, 4, 1, 3, 2, 5} 整数型: left ← 1, sum ← 0, best…