IBMコーディングテスト対策ガイド2026:出題・時間配分・準備方法

PracHub の英語記事を翻訳したものです英語の原文を読む

概要

IBM公式の案内と、PracHubの問題集に寄せられた実際の4件の報告をもとにした、実践的なIBMコーディングテスト対策ガイドです。区間、文字列のインデックス、回文のための文字数の予算、スライディングウィンドウ、タイマーの使い方、非公開テスト、監督(プロクタリング)、プライバシー、7日間の準備計画を扱います。

多くの候補者は「IBMのコーディングテスト」を、全員が同じ問題、同じ制限時間、同じプラットフォームで受けるものとして準備しています。しかしIBM自身の案内によると、形式は職種によって異なります。招待メールが、あなたのテストの仕様書です。

このガイドでは、その公式の基本情報と、PracHubの問題集にある実際のIBMのコーディング問題4問を組み合わせます。4問は区間、文字列のインデックス、文字の出現頻度に基づく考え方、スライディングウィンドウを扱っています。IBMのテストがどれほど幅広くなりうるかを示してくれるので役に立ちます。5行で書ける正確さの確認問題が出ることもあれば、次に中級レベルのアルゴリズム問題をまるごと解く必要があることもあります。

汎用の問題リストに取りかかる前に、PracHubのIBM Coding & Algorithms questions(IBMのコーディングとアルゴリズムの問題)を開いてください。以下で紹介する報告された問題を使って、本当に補強すべきパターンを見極めましょう。

区間やスライディングウィンドウなど、IBMのコーディングテストのパターンに取り組む候補者

招待メールに書かれた職種別のテストに備え、そのうえで実際のIBMの出題報告を使って練習を具体的なものにしましょう。

結論: IBMは、テストに選択式の問題、コーディング課題、またはその両方が含まれうることを公式に認めています。一方で、全員共通の問題数、制限時間、プラットフォーム、使用可能な言語の一覧、合格点は公表していません。まず招待メールを読み、そのうえで時間を計ったコーディングの基礎練習と、募集要項に書かれた職種固有の内容に取り組んでください。

IBMが公式に認めていること

IBMの応募プロセスでは、コーディングテストは職種に応じて選択式の問題またはコーディング課題であると説明されています。テストに関するFAQでは、招待された候補者に対し、7日以内にテストを完了すること、そして自分のテストに制限時間があるかどうかを確認することを求めています。

項目信頼できる情報自分で確認すべきこと
形式選択式、コーディング課題、または職種に応じた組み合わせ招待メールに記載されたセクション
完了期限IBMは招待された候補者に7日以内の完了を求めているメールに書かれた正確な締切とタイムゾーン
タイマー制限時間のあるテストもある合計時間と、セクションごとに別のタイマーがあるかどうか
問題数IBMは全員共通の数を公表していない開始前のテストのランディングページ
プログラミング言語職種と環境によって選べる言語が異なる言語の選択画面と募集要項
監督(プロクタリング)一部のコーディング課題では、IBMがコードやWebカメラの写真を保存することがあるテストの画面に表示される許可と注意事項
合格点IBMは全員共通の合格ラインを公表していないチームが共有してくれる場合は、リクルーターからの案内

IBMのコーディングテストについて、確認されている内容と招待メールごとに異なる内容

基本はIBMの公開情報で押さえ、テストごとの細かいルールはすべて招待メールで確認してください。

IBMはHackerRankを使っていますか?

候補者の報告では、IBMのテストがHackerRank上で行われたという声が多く、IBMの新卒向け開発者ガイドでも、おすすめの練習リソースの一つとしてHackerRankが挙げられています。ただし、IBMの公開されている応募ページは、すべての職種や地域で同じプラットフォームが使われるとは約束していません。

プラットフォームが変わっても通用するスキルを準備しましょう。関数のシグネチャを読むこと、標準入力を扱うこと、コンパイルが通るコードを書くこと、自分でテストケースを作ること、失敗時のメッセージを読み解くことです。そのうえで、招待メールにリンクされているチュートリアルや練習環境を使ってください。

どんなトピックを準備すべきですか?

準備の2本目の柱を考えるうえで、いちばん頼りになるのは募集要項です。IBMの開発者向けガイドによると、技術的なトピックにはデータ構造、ネットワーク、テクノロジー、データの扱いが含まれることがあります。そのバランスは、ソフトウェアエンジニアリング、データ、AI、インフラの各職種で変わります。

職種の分野重点的に練習すべき内容評価の高い提出物が示すこと
ソフトウェアエンジニアリング配列、文字列、ハッシュ、ソート、区間、木、グラフ正確さ、計算量、エッジケース、読みやすい実装
データエンジニアリングSQL、結合、集計、データ変換、基本的なアルゴリズムデータの意味の理解、null の扱い、スケール、常に同じ順序の出力
データサイエンスとAIPython、SQL、配列、統計、データ操作配列の形状(shape)の推論、前提条件、数値とデータのエッジケース
クラウドとインフラコーディングの基礎に加え、ネットワーク、Linux、API、自動化運用面を踏まえた考え方と、障害を想定したコード

候補者の書き込みの中には、コーディング問題が2問だったというものもありますが、それは一つの報告であり、全員に共通するテンプレートではありません。以下の問題集の事例は、あなたのテストを正確に予測するものというより、パターンの地図として使うほうが役に立ちます。

PracHubの問題集にある、実際のIBMのコーディング問題4問

現時点でPracHubには、正規化されたラウンド欄がそのまま「Online Assessment」になっているIBMの記録は表示されていません。以下の4件の記録は Technical Screen に分類されていますが、その元になった候補者の報告では、いずれもこの課題をOAだと明記しています。問題集のラベルを黙って付け替えたり、IBMのテストがどれも同じ問題を使い回していると思わせたりするのではなく、この違いをそのままお見せします。

実際の問題報告された課題知っておくべきパターンOAの練習として役立つ理由
Compute minimum rooms for meeting schedule(会議スケジュールに必要な最小の会議室数を求める)ソートされていない半開区間の会議が与えられ、必要な最小の会議室数を返すソート、2つのポインタまたは最小ヒープ、終了と開始が同時刻のときの扱い問題文をイベントに置き換えられるか、終了時刻と開始時刻が等しい場合を処理できるかを確認できる
Reverse last two characters with space(末尾2文字を入れ替えてスペースを挟む)"bat" のような文字列に対して "t a" を返す直接のインデックス指定、出力の整形、最小の長さの前提短い正確さの確認問題で、作り込みすぎることとoff-by-oneエラーが主なリスク
Maximize palindromic strings after character swaps(文字の交換後に回文の文字列の数を最大化する)文字列の間で文字を交換し、回文にできる文字列の数を最大にする全体の文字頻度のカウント、ペアの予算、貪欲法による割り当て操作は局所的に見えるが、鍵となる単純化は、文字列の長さが固定のまま、文字が一つの共有プールになると捉えること
Find minimum subarray length with k distinct integers(異なる整数がちょうどk個ある最短の部分配列の長さを求める)異なる値がちょうど k 個含まれる、最も短い連続部分配列を返すスライディングウィンドウ、頻度マップ、慎重な縮め方「ちょうど k 個」と、より簡単な「k 個以下」のパターンを区別でき、古いカウントが残るバグも見つけられる
IBMの問題集に見られるパターンのステップアップ図 報告された4つのIBMのコーディング問題が、文字列のインデックスから、区間と文字数の予算を経て、スライディングウィンドウへと段階的に難しくなっていく。 実際のIBMの報告から作った、4パターンの練習ステップ まず正確さから始め、次に状態、不変条件、計算量を加えていきます。 文字列の インデックス 末尾2文字の入れ替え 境界 + 出力形式 区間の イベント 必要な最小の会議室数 ソート + 同時刻のルール ペアの 予算 回文の最大数 カウント + 貪欲法 スライディング ウィンドウ 異なる値がちょうどk個 マップ + 不変条件
表向きの難易度だけで並べないでください。この4問は、制限時間のなかで、それぞれ違う種類のミスを誘います。

問題1:会議スケジュールに必要な最小の会議室数

IBMの会議室の問題では、[start, end] の区間のリストが与えられ、必要な最小の会議室数を求めます。区間はソートされていません。ある会議が時刻 t に終わり、別の会議が時刻 t に始まる場合、2つは同じ会議室を使えます。

標準的な解法は2つあり、どちらも適切です。

  • 開始時刻と終了時刻を別々にソートし、2つのポインタでスイープする。
  • 会議を開始時刻でソートし、使用中の終了時刻を最小ヒープで管理する。

2つのポインタ版で重要なのは、<= ではなく starts[i] < ends[j] を使う行です。時刻 t の終了は、時刻 t の開始が会議室を使う前に、その会議室を空けます。実行時間はソートが支配的なので、目標は時間計算量 O(n log n) です。

練習問題: Compute shared free time intervals (IBM · Software Engineer)

テスト期待される会議室数確認できること
[]0空の入力の仕様
[[1, 4]]1区間が1つだけの場合
[[1, 2], [2, 3]]1端が接している半開区間
[[1, 4], [2, 5], [3, 6]]3重なりのピーク
[[5, 7], [1, 10], [2, 3]]2ソートされていない入力

問題2:末尾2文字を入れ替える

IBMの文字列問題は意図的に小さな問題で、"bat" が与えられたら "t a" を出力します。ここで身につけたいのはアルゴリズムではなく、細部まで丁寧に確認する習慣です。文字列が少なくとも2文字あることを確認し、直接インデックスを指定し、出力を完全に一致させてください。非公開テストは、"ta"、"t a"、逆順のインデックス指定を、壊れたグラフアルゴリズムと同じくらいきっぱりと不正解にします。

問題3:交換後に回文の文字列を最大化する

回文の問題では、ある文字列の1文字と別の文字列の1文字を、何回でも交換できます。各文字列の長さは元のままです。

発想の転換は、交換をシミュレーションするのをやめることです。文字列間で何度でも交換できるということは、文字全体が一つの在庫になるということです。長さ L の回文には floor(L / 2) 組の文字のペアが必要で、L が奇数なら中央に任意の1文字が加わります。すべての文字の頻度を数え、それをペアの総予算に変換し、必要なペア数が少ない文字列から順にその予算を割り当てます。面接官が確かめているのは、ごちゃごちゃした操作を、それが生み出す不変条件に置き換えられるかどうかです。

コードを書く前に、空文字列が許されるか、英小文字だけが現れるのかを確認してください。これらの詳細は、核となる考え方を変えるわけではありませんが、頻度の持ち方を決めます。

問題4:異なる値がちょうどk個の最短の部分配列

ちょうど k 個の問題では、異なる整数がちょうど k 個含まれる連続部分配列の最小の長さを求めます。そのようなウィンドウが存在しない場合は -1 を返します。

スライディングウィンドウと頻度マップを使います。ウィンドウ内の異なる値が k 個を超えたら、再び条件を満たすまで左端を進めます。ちょうど k 個になったら、左端の値がウィンドウ内に残る限り、左側から重複したコピーを取り除きます。長さを測るのはそのあとです。この「異なる値を失わない範囲で縮める」というルールが、有効なウィンドウを、現在の右端で終わる最短の有効なウィンドウに変えます。

k = 0、空の配列、すべて同じ値の配列、k が異なる値の総数より大きい場合、負の整数、左端の値が複数回現れるウィンドウをテストしてください。想定される計算量は時間 O(n) です。それぞれのポインタが前に進むのは最大でも n 回だからです。

練習問題: Count Index Triplets Whose Max Minus Min Is at Most d (IBM · Software Engineer)

時間配分、非公開テスト、提出の戦略

IBMは全員共通の制限時間を公表していないため、「1問30分」のような固定のルールは通用しないことがあります。招待メールに表示されたタイマーに合わせて調整できるよう、割合で考えましょう。

時間の割合行動具体的な成果物
最初の5%すべてのセクションと制約に目を通す問題を解く順番とリスクの地図
次の15%例を書き、方針を決め、計算量を見積もる自信を持って説明できる計画
次の60%正しく動く最もシンプルな解法を実装する仕様全体を満たす、実行可能なコード
次の15%エッジケースと、ありそうな非公開テストを突くサンプル以外の裏付け
最後の5%制約を読み直し、意識して提出する整った最終回答

問題が複数ある場合は、まず全体に目を通してください。実際の4つの例を見ればその理由がわかります。短い文字列の問題に、回文やスライディングウィンドウの問題と同じだけの計画の時間をかけるべきではありません。確実に取れるところを先に押さえ、残りの時間を、考える力が問われる問題に使いましょう。

非公開テストが突くことの多いもの

非公開テストの多くは、書かれた仕様から当然に導かれる、サンプルでは試されなかったケースです。

ミスのパターン提出前に試すテストIBMの問題集での例
境界のミス空の入力、要素が1つ、許される最小のサイズ末尾2文字の入れ替えでは最小の長さを明確にする必要がある
同時刻・同値の扱い同じタイムスタンプ、重複、接している区間時刻 t に終わる会議と時刻 t に始まる会議
状態の誤り繰り返しの呼び出し、古いグローバル変数、変更された入力頻度マップは現在のウィンドウだけを表す必要がある
数値やカウントの誤りゼロ、負の値、奇数の合計、オーバーフロー回文の中央の文字と、使われずに余る文字
計算量の失敗制約の上限に近い人工的な入力スライディングウィンドウは各インデックスでやり直してはいけない
出力の不一致戻り値の正確な型、順序、空白、大文字小文字"t a" は "ta" ではない

サンプルが通ったところで止めないでください。アルゴリズムが保つ不変条件を言葉にし、時間計算量と空間計算量を導き、少なくとも3つの意地悪なテストを書きましょう。

さらに時間を計って練習するなら、上のパターンが自然に身につくまで、IBM Coding & Algorithms questions(IBMのコーディングとアルゴリズムの問題)の範囲で続けてください。そのあと、後の技術面接に向けてSoftware Engineerの問題集へと広げましょう。

7日間のIBMコーディングテスト準備計画

7日間のIBMコーディングテスト準備の流れ

7日間の完了期限を、診断、補強、模擬テストのサイクルに変えましょう。

日重点具体的な成果物
1招待メールと募集要項を読むプラットフォーム、タイマー、セクション、言語、締切、職種のスキルマップ
2時間を計って診断するIBMの文字列問題と区間問題を解き、エラーの記録を始める
3状態を持つパターンを補強するちょうど k 個のスライディングウィンドウ問題と、関連する2問を解く
4職種固有の内容を練習する募集要項に合わせたSQL、データ、ネットワーク、クラウドの課題
5非公開テスト対策を徹底する提出前に、エッジケースの表を2つの解答に当てはめる
6テスト全体を模擬する選んだ言語で、中断なしの1セッション
7軽く復習して完了する安定した環境で、休息をとって臨み、意識して提出する

ミスは問題名ではなく原因ごとに記録しましょう。「同時刻の区間を解放し忘れた」や「重複を縮める前にウィンドウの長さを測った」は、繰り返し使える教訓です。「問題3を間違えた」はそうではありません。

当日のルール、監督(プロクタリング)、プライバシー

IBMの応募者のプライバシーに関する通知によると、IBMはコーディングテスト中に作成されたコードを記録して保存することがあり、コーディング課題の間に1枚以上のWebカメラの写真を保存することがあります。ビデオ付きのテストでは録画が行われる場合もあります。この文言はあくまで取得されうる情報を述べたものであり、IBMのすべてのコーディングテストで常時ビデオが録画されることを裏づけるものではありません。

開始する前に、同意画面と招待メールを読んでください。カメラの許可を確認し、関係のないアプリを閉じ、求められた場合に備えて身分証明書を手元に置き、配慮が必要な場合は締切前にテストのサポート窓口に連絡しましょう。

IBMの応募ガイダンスは、AIの利用についても線を引いています。概念を学ぶためにAIを使うことは推奨されていますが、テストの技術的な解答をAIに書き直させることは認められていません。事前の準備にAIを使うのは構いません。テスト中は、表示されたルールに従い、自分自身の解答を提出してください。

タイマーを開く前最終提出の前
締切とタイムゾーンを確認するすべての制約を読み直す
ブラウザ、ネットワーク、カメラ、キーボードを確認する境界、同時刻、スケールのテストを実行する
許可されている言語のうち、深く理解しているものを選ぶデバッグ出力と不要なコードを削除する
1回で終えられるよう、中断されない十分な時間を確保する戻り値の型と出力形式を確認する
ルールで許可されたリソースだけを開くタイマーが切れる前に提出する

IBMコーディングテストのFAQ

IBMのコーディングテストは何問出ますか?

IBMは全員共通の問題数を公表していません。候補者の報告は、職種や勤務地によってばらつきがあります。PracHubの問題集には、コーディング問題が2問ずつのIBMの報告も含まれていますが、あなたのテストが2問であることを保証するものではありません。正確な構成は、招待メールとテスト開始前の画面で確認してください。

IBMのコーディングテストの制限時間はどのくらいですか?

タイマーはテストごとに異なります。IBMの公開FAQは、候補者に対し、自分のテストに制限時間があるかを確認すること、そして1回で終えられるよう中断されない十分な時間を確保することを求めています。別に定められた7日間というルールは、招待後の完了期限であり、テストそのものの所要時間とは限りません。

上の4問は必ず出題されますか?

いいえ。これらはPracHubの問題集にある、候補者の報告に基づいた、IBMのタグが付いた実際の問題で、これまでに報告されたレベルとパターンの傾向を示すために掲載しています。流出した問題や、出題が保証された問題のセットではなく、練習の裏付けとして使ってください。

どのくらいの難易度を想定すべきですか?

全員共通の公式な難易度表示はありません。報告されたIBMの例は、直接の文字列インデックスから、中級レベルの区間、貪欲法、スライディングウィンドウの問題まで幅があります。簡単な正確さの確認問題はすばやく終わらせ、よくある中級レベルのパターンは、整った計算量とエッジケースの考察を添えて解けるように準備しましょう。

プログラミング言語は選べますか?

使える言語は、テストの環境と職種によって決まります。IBMの開発者向けガイドは、ほとんどの場合、いちばん得意な言語を使うことを勧めていますが、最終的には選択画面と招待メールに従います。タイマーが始まる前に対応状況を確認し、その言語で実際の入力、出力、テストの手順を練習しておきましょう。

IBMはコーディングテストを録画しますか?

IBMのプライバシーに関する通知には、コーディング課題の間にコードが保存され、1枚以上のWebカメラの写真が撮影されることがあると書かれています。ビデオ付きのテストは録画されることもあります。これは、すべてのテストで同じ監視が行われることの証明ではありません。ご自身のテストで表示される許可とプライバシーに関する通知を読んでください。

IBMのコーディングテストは再受験できますか?

IBMは、すべてのテストに共通する再受験のルールを公表していません。技術的な問題でセッションが中断された場合は、すぐに記録を残し、招待メールにあるサポートの連絡先を利用してください。ページの更新、再度開くこと、別の応募を始めることで、有効な再受験になると思い込まないようにしましょう。

次にやるべきことはシンプルです。リンク先のIBMの問題4問を1回で通して解き、最初に失敗した不変条件やエッジケースを記録して、本番のアセスメントを受ける前にその弱点を補強しましょう。

参考資料とさらに読む

IBM の面接問題を練習する

IBM の面接問題を練習する