SMBC Programming Contest #2 (AtCoder Beginner Contest 481)
Can Participate: All Rated Range: - 1999 Penalty: 5 minutes
コンテスト情報
- コンテスト時間: 100 分
- レーティング更新対象: 0 - 1999
SMBCで働くエンジニアの仕事
2026年9月16日にAtCoder株式会社の高橋と青木がSMBCの兵頭さんに行ったインタビューを元に構成しています。
(1) プロフィール
兵頭 和樹(システム統括部)
フリーランスのエンジニアを経て現在はSMBC社内で勤務しています。全社のIT戦略やセキュリティを企画する一方、自らPythonを書き、生成AIの開発にも取り組んでいます。
(2) 開発事例
社内生成AI「SMBC-GAI」のRAG構築
銀行には、社内規程やマニュアルなど約130万件の文書があります。これらを基に回答するAIを実現するため、RAGを構築しました。しかし、人には扱いやすい文書でも、AIがそのまま扱えるデータは1割未満でした。そこで、Azure上で約2,000台の仮想マシンを稼働させ、データを加工。さらに、チャンク長や検索件数が異なるインデックスを比較・検証し、正答率を約60%から90%台後半まで高めました。それでも約4%は、部署によって正解が異なるなど、人でも判断が分かれる問題として残ります。そこで、最終的な判断と責任は人が担うことを前提に、回答には必ず根拠資料を示す設計としています。
窓口向けリアルタイム通訳アプリ
外国籍のお客さまが多い支店では、窓口でのコミュニケーション負担が大きい一方、会話などの社内データを外部に出さずに使える通訳ツールがありませんでした。そこで、OpenAIの音声AIモデルを活用した通訳アプリを開発しました。金融業界で安心して利用できるよう、社内利用者を適切に認証する仕組みを備え、ハルシネーションの防止も重視しています。翻訳結果と発話の文字起こしを併記することで、AIの聞き違いにもその場で気づける設計です。現在、社内でも好評を得ています。
(3) 銀行でエンジニアが働く意味
現在のSMBC-GAIの前身となった社内AIアシスタントは、金曜日のオフィスでの立ち話をきっかけに、その週末の2日間で開発しました。その後は、銀行全体で安全かつ継続的に利用できる仕組みへ育てるため、実際に使いながら、利用部門とともにセキュリティ、利用ルール、運用方法を検証。約半年をかけて全社展開の基盤を整えました。新しい技術を素早く形にし、組織として安心して使える状態まで育てた結果、今では1日に数十万件利用されています。
社内にエンジニアがいることで、現場の何気ない会話をすぐに試作品へ変え、利用者の声を取り込みながら全社で使える仕組みへ育てることができます。テック企業との関係も深まり、ちょっとした会話から新しい取り組みが始まることもあります。業務と技術、社内と社外をつなぐことが、銀行で働くエンジニアの役割です。
(4) AI時代のエンジニアへ
AIがコードを書く時代でも、目指す姿を描き、試行錯誤を重ねて自分の手でやり遂げた成果まで「AIにもできる」と片づけられることはありません。その過程で得た判断力や実行力こそが、エンジニアの付加価値になります。学生のみなさんには、興味を持ったことに、まずはがむしゃらに取り組んでほしいと思います。
SMBC競プロ交流会のご案内
イベント概要
- イベント名:SMBC競プロ交流会
- 日程:2026年11月21日(土)14:00〜17:00
- 会場:HOOPS LINK
(〒100-6515 東京都千代田区丸の内1-5-1 新丸の内ビルディング15階) - 定員:最大50名
参加条件
以下のすべてを満たしている方を対象とします。
- 学生または就業中の方(雇用形態問わず)
- 日本国内在住であること
- コンテストで1問以上正解していること
- 参加登録フォームの必要事項をすべて入力していること
- 参加登録フォームにて本イベントへの参加意思を示していること
※学生の定義:大学生(学部生および大学院生[修士・博士課程])、高等専門学校の4・5年生、専門学校生
参加者の決定方法
- 応募者多数の場合は抽選により参加者を決定します
- 学生と社会人の割合が半々程度になるよう調整します
その他
- 交通費の支給はありません
賞品
抽選で20名に賞品(Amazonギフトカード25000円分)を用意しております。
なお、以下の条件をすべて満たす参加者を賞品対象者とします。
- 少なくとも1問以上正解している
- 参加登録情報にすべての項目を記載しており、プライバシーポリシーに同意している
- 日本国内に在住している
- 未成年者については、賞品の受け取りについて保護者の同意を得ていること
賞品対象者の方には参加登録情報に入力されたメールアドレスにAmazonギフトカードを送付いたします。
配点
| 問題 | 点数 |
|---|---|
| A | ??? |
| B | ??? |
| C | ??? |
| D | ??? |
| E | ??? |
| F | ??? |
| G | ??? |
ルール
- コンテスト中に問題に正解すると点数を獲得できます。
- 順位は総合得点で決定します。
- 同点の場合は提出時間の早い人が上の順位になります。
- 誤答を提出するたびにペナルティが加算されます。このコンテストのペナルティは5分です。詳細は画面下部の「ルール」をご覧ください。
このコンテストは full-feedback 形式のコンテストです。コンテスト中に提出された結果だけで順位が決定します。
便利情報
Contest Information
- Duration: 100 minutes
- Rated Range: 0 - 1999
Promote Your Company through AtCoder Contests
AtCoder is one of the world's largest competitive programming platforms, with over 900,000 registered users worldwide. Our contests attract thousands of highly skilled programmers, students, and engineers.
Sponsorship Benefits
- Introduce your company on the contest page
- Post a link to your recruitment or corporate website
- Reach talented programmers around the world
- Receive participant information only from users who agree to provide it to the sponsor
AtCoder offers several contest formats, including AtCoder Beginner Contest (ABC), AtCoder Regular Contest (ARC), and AtCoder Heuristic Contest (AHC).
If you are interested in sponsoring an AtCoder contest, please note that communication will be conducted via text-based communication, such as e-mail or chat.
For more details, please visit: AtCoderContest.pdf
About the New Judge
- This contest will be conducted using a new judge. Please thoroughly check the available languages and versions before participating.
- For information on available languages, versions, and libraries, please check here.
- Display format for TLE and MLE has been changed.
- If there are critical issues like InternalError, please notify us in Clar with the relevant submission attached.
- We have already closed requests regarding versions and libraries, hence we cannot address them.
Point Values
| Task | Score |
|---|---|
| A | ??? |
| B | ??? |
| C | ??? |
| D | ??? |
| E | ??? |
| F | ??? |
| G | ??? |
Contest Rules
This contest is full-feedback (solutions are judged during the contest).When you solve a problem, you get a score assigned to it. Competitors are ranked first by total scores, then by penalties. The penalties are computed as (the time you spend to get your current score) + (5 minutes) * (the number of incorrect attempts).