SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

プログラミング力、つけてますか?

人間の強みは“論理の飛躍”!? 世界2位の競プロerに問う「AIとの戦い方」


 生成AIによるコーディングの自動化が急速に進む中、エンジニアがプログラミングを学ぶ意義が改めて問われている。特に高度な論理的思考を必要とする「競技プログラミング(競プロ)」の世界において、AIはすでに世界トップクラスのプレイヤーと肩を並べる実力を持ち始めた。果たして、人間がアルゴリズムを学び、自らコードを書く価値はどこにあるのだろうか。本インタビューでは、現在、計画最適化ソリューションを提供する株式会社ALGO ARTISで社会インフラチームのリードを務め、AtCoderの世界大会「AtCoder World Tour Finals 2025(AWTF)」で世界2位に輝いた実績を持つ松尾充氏に話を伺った。

コロナ禍に始まった「競技プログラミング世界2位」へのストーリー

──まずは松尾さんのこれまでの経歴を教えてください。

松尾充氏(以下、松尾):私のキャリアのスタートは2016年、重工メーカーのIHIという会社でした。大学では機械工学を専攻しており、当時はソフトウェアではなく、戦闘機用エンジンの新規開発に携わる機械設計エンジニアとして働いていました。プログラミングとは全く無縁の、物理的なものづくりの世界にいたんです。

GitLab Vice President Emilio Salvador

株式会社ALGO ARTIS 社会インフラチーム チームリード/プリンシパルアルゴリズムエンジニア 松尾充氏

撮影場所:WeWork 半蔵門 PREX North(以下、同様)

 転機は2020年の4月、新型コロナウイルスの感染拡大期です。工場が休業になり、出社せずに自宅にいる時間が突然増えました。「この時間を使って何か新しいことを始めよう」と思い、以前から興味があった競技プログラミングに触れてみたのが始まりです。プログラミング自体は大学時代の研究やサークル活動で使っていたので、ある程度理解があったんです。

 時間ができた際に競技プログラミングに出会い、その面白さにのめり込みました。その後、社内の研究部門への異動を経て、より高いレベルの環境を求めて2022年にALGO ARTISへ入社しました。

 いざ始めてみると、朝から晩まで問題を解くのが楽しくて仕方なくなり、一気にのめり込んでいきました。実績が出始めると、「得意なことを仕事にしたい」という思いが強くなりましたが、メーカーから未経験でIT系に転職するのはハードルが高い。そこでまずは社内FA制度を利用し、本社の研究開発部門である、最適化を研究するような部署へ異動しました。2021年4月のことです。

──そこからどのような経緯でALGO ARTISへ入社され、現在チームリードを務めるに至ったのでしょうか。

松尾:よりレベルの高い環境で自分を試したいという思いが募っていた時期に、当時Kaggleなどの分野で著名だった弊社(ALGO ARTIS)の役員から声をかけてもらったのがきっかけです。2022年1月に入社した当時は、社員数も10名に満たない小さな組織でしたが、そこからアルゴリズムエンジニアとして船の運航計画の最適化などのプロジェクトを担当してきました。

 現在は社員数も増え、エンジニアリングディビジョンの社会インフラチームでチームリードを務めています。具体的な業務としては、船の運航計画のほか、バス乗務員のシフト表作成など、社会インフラに関わる企業の最適化システムを提供しています。マネージャーという立場ではありますが、メンバーが非常に優秀なので、私が技術的な細部を管理することはありません。むしろ、どうすればチームメンバーのパフォーマンスを会社の業績につなげられるかという「組織全体の最適化」や、採用・広報活動など、アルゴリズムエンジニアの領域を幅広く支える役割を担っています。

GitLab Vice President Emilio Salvador

ALGO ARTIS社員の過半数は競技プログラミング経験者

引用:松尾氏のSpeakerDeckより

競技プログラミングの核心は「数学的快感」にあり?

──読者の中には「競技プログラミング」に馴染みのない方もいるかもしれません。具体的にどのような面白さがあるのでしょうか?

松尾:競プロは、一見すると単なる計算問題に見えますが、実は非常に高度な「パズル」なんです。分かりやすい例として、AtCoderの解説でも使われる「あみだくじ」の問題を考えてみましょう。

競技プログラミングの問題例

引用:AtCoder公式サイトより

 スタートからゴールまで辿るあみだくじが1つなら、誰でも手で辿れます。それが1,000個あっても、コンピューターなら一瞬で計算できます。しかし、もしあみだくじが「1億個」並んでいたらどうでしょう。いくら高速なコンピューターでも、愚直に一つずつ辿っていては膨大な時間がかかってしまいます。

 ここで「数学的な工夫」が登場します。あみだくじの結果をよく観察すると、「AからスタートするとFに行く」「Fに行くとCに行く」「Cに行くとAに戻る」といったサイクル(規則性)が見つかることがあります。この場合、3回ごとに元の位置に戻るわけですから、1億回すべてをシミュレーションする必要はありません。1億を3で割った「余り」だけを考えれば、答えは一瞬で導き出せます。

──まさに数学の問題を解くような、規則性を見つける面白さがあるのですね。

松尾:その通りです。コンピューターは高速に処理することができますが、限界があります。一方で人間が考えれば、数学的な思考やパズルのような発想を使って、より効率的な道筋を見つけ出すことができます。「複雑な条件を紐解き、正解に辿り着いた瞬間の快感」これに惹きつけられている人が非常に多いのだと思います。

──現在、トップレベルで競技プログラミングに取り組む方はどのような方がいるのでしょう。

松尾:最近は特に学生、高校生や大学生が非常に強いですね。受験勉強や数学的思考と共通する部分があるからかもしれませんが、社会人が全くかなわないようなスピードで解いてしまう若者が次々と現れています。もちろんベテランの方でも強い人はずっと強いのですが、若手の人も一緒になって界隈を盛り上げてくれています。

次のページ
競技プログラミングにおける「AIvs人間」の勝者は?

この記事は参考になりましたか?

プログラミング力、つけてますか?連載記事一覧

もっと読む

この記事の著者

中野 佑輔(編集部)(ナカノ ユウスケ)

 SIer勤務を経て2025年よりCodeZine編集部所属。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

ミヨグラフィ(ミヨグラフィ)

フットワークが窒素よりも軽いフリーランスフォトグラファー。ポートレート、取材、イベントなど主に人物撮影をしています。英語・中国語対応可能。趣味は電子工作・3Dプリント・ポールダンス。 Webサイト

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/23366 2026/03/06 11:33

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング