企業・学校対抗プログラミングコンテストPG BATTLE 2023において、株式会社グリッドは6位(188チーム中)の好成績を収めました。さらに個人賞 (企業の部 マシュマロ10位)も獲得しました。詳しい結果はこちら。本ニュースでは、今回のコンテストの概要と出場した3人のコメントを紹介します!
コンテスト概要
PG BATTLEとは ・1チーム3名で競技プログラミングの問題を解く ・問題セットは3種類(マシュマロ・せんべい・かつおぶし)あり、かたい順に難易度が高い ・各問題セットに4つの問題があり、3名がそれぞれ1つの問題セットを担当 ・全チーム同時にオンラインでスタートし、90分以内にプログラムを書いて提出 ・合計点数と解答速度で他のチームと順位を競う
チーム名 Galaxy Robust Inferno Dragons (チーム名の頭文字をとると社名の"GRID"になります!)
チームメンバー マシュマロ担当(Kさん) せんべい担当(Nさん) かつおぶし担当(Yさん)
インタビュー前編:GRID社員がプログラミングコンテストPG BATTLE 2023で入賞
― 6位入賞という素晴らしい結果、おめでとうございます!感想をお願いします。
N: 入賞したいと思っていたので、嬉しかったです。しかし優勝をすることの厳しさを知り、これからも精進しようと思いました。
K: 結果を見てガッツポーズしました!家族に自慢して、息子に少し尊敬の眼差しで見られた気がします(笑)チームメイト二人のおかげで、良い結果が得られました。今後も競技プロラミングを業務に活かせるよう日々精進していきます!
Y: まさか入賞できるとは思っていなかったのでびっくりしました。個人的には最後の問題が解けなくて悔しかったのですが、結果的にチームメイト3人がバランスよく取るべき問題を取れて、結果も残せて嬉しかったです。来年挑戦することがあれば、より上位を狙っていきたいです。
― はじめに、競技プログラミングについて詳しく教えてください。
K:競技プログラミングでは、与えられた課題を満たすプログラムをいかに多く、速く解けるかを競います。最初の方の問題はプログラムの文法が分かれば解けるレベルですが、後半の問題ではアルゴリズムを駆使して計算時間を短くする必要があります。数学的な要素やプログラミング知識だけでなく、適切なアルゴリズムを見抜いて使える深い理解力が問われるコンテストになります。
― PG BATTLE 2023に向けて特別な対策はありましたか?
N: いつもと環境が異なるので、本番と同じ環境で練習をしました。
K: 当日は、提出が一度きりなので、自分でテストケースを作ったりして、色々な入力例を試して答えが合っているか検算を入念に行いました。団体戦なので、周りに迷惑をかけちゃいけないプレッシャーで、いつもより緊張感がありました。
― 競技プログラミングを始めたきっかけを教えてください。
K: 3人とも普段からAtCoder主催のコンテストに参加しています。私は1年半前にグリッドに入社したのと同時に始めました。入社前に勉強しておいた方が良いこととして「数理最適化」というアドバイスがありましたので、まずは本を読みました。動的計画法やダイクストラ法、メタヒューリスティックアルゴリズムなど原理は理解したものの、業務で使えるレベルじゃないと思っていたところ、AtCoderでアルゴリズムを使って解く問題が出されているコンテストがあることを知り、参加するようになりました。
N: 2年半前からです。AI業界に転職したいと思い、プログラミングを始めたことがきっかけです。前職は製造業で現場職だったので、AIやプログラミングとは縁遠いところにいました。
Y: 3年前から始めました。私も製造業出身で、業務でのデータ分析のためにプログラミングを学ぶ中で、競技プログラミングというものを知り、AtCoderに参加するようになりました。最近では、3人とも、アルゴリズムコンテストで得られた知見が活かせるヒューリスティックコンテストにも参加しています。
― 普段からAtCoderの競技プログラミングに参加しているのですね。
K: AtCoderでは、レートシステムというのがあって、参加している人たちの中で自分はどのくらいのレベルにいるのか分かるようになっています。自分の実力や成長が可視化されるので、ネットゲームでレベル上げをしているような感覚で続けている方も多いのではないかと思います。

― 高いレートや入賞など素晴らしい結果ですが、日頃はどのような勉強をしていますか? ※AtCoderレーティングレベル(Kさん:水色、Nさん:青、Yさん:黄色)
K: 過去問を解きます。アルゴリズムの本もありますが、本で学んだだけでは実務でなかなか使えないので、アルゴリズムを使っている問題を解いたりして自分のものにしていきます。
Y: 最初はプログラミングの入門書を読みながら、実践問題として競プロのABC-C問題をひたすら埋めていました。仕事で実験データの定常的な前処理コードをPythonで書けるようになった頃には、1日1問以上、自分のレートと同じレベルの問題を解くことを習慣にしました。そうすることで、思考力が求められる問題に対して解法を導けるようになり、また複雑な実験データの処理に対して簡潔なコードが書けるようになりました。日々の積み重ねですね。
― 競プロの魅力を教えてください。
N: 解く楽しさが一番の魅力です。競プロはパズルだと思っています。
Y: 1時間くらいずっと悩んで考えてやっと解けた時にはすごく嬉しいです。
K: 手が届くか届かないかのくらいのところのものが解けた時は、達成感っていうのはありますね。
― 今後の目標はありますか?
全員: 色をあげていきたいです!
続きは後編へ 〜後編では、当社の魅力についてインタビューしています!こちらへ