PG BATTLE 2020 「企業の部」優勝者インタビュー

 2021.03.04  株式会社システムインテグレータ

PG BATTLE 2020 「企業の部」優勝者である、Indeed Japan株式会社『あの人の外し方』チームの皆様にオンラインでインタビューしました!

プログラミングをはじめたきっかけやPG BATTLEの経緯、感想についてお話をうかがえましたので、ぜひご覧下さい!

チーム紹介「あの人の外し方」チーム

3men_20210303a

(左)松岡禎明氏:ましゅまろ担当
(中)森田晃平氏:かつおぶし担当
(右)鮫島遥介氏:せんべい担当

Indeed Japan株式会社『あの人の外し方』チームはPG BATTLE 2020「企業の部」に出場した198チームの中で、見事1位に輝きました。合計点:300点/300点、タイム:124分42秒/270分、という好成績を残されています。Indeed Japan株式会社様は企業としても第1回PG BATTLEから常にTOP10入りのチームを輩出されており、同社の優秀なプログラマー層の厚さを感じさせる結果となりました!

プログラミングをはじめたきっかけは?

(森田)中学のときに部活でプログラミングをしていて、面白いなと思ったのがきっかけです。具体的には物理部での電子工作のなかで、マイコンのプログラミングをしていました。

(鮫島)高校のときにパソコンのゲームをやっていて、これはどうやって動いているんだろう?と気になり、ゲームの中身のバイナリを読んだり、アセンブリを直したりし始めたのがきっかけです。

(松岡)高専の授業や部活動でプログラミングをしたのがきっかけです。特にアルゴリズムに関することを面白く感じていました。

競技プログラミングをはじめたきっかけは?

(森田)Google Code Jamというプログラミングコンテストを偶然知り、出場してみたら面白かったのがきっかけです。競技プログラミングは他のプログラミングと違い1~2時間で動くものが作れるので面白いと感じました。

(鮫島)大学のときに先輩にICPCに誘ってもらったのがきっかけです。当時はそこまでハマらなかったですが、その後改めて競技プログラミングをやってみようと思い、大学2年生くらいから週1回開催されているコンテストに出るようになりました。

(松岡)私の場合、ちょっと変わっているかもしれませんが、コードゴルフという競技がきっかけでした。コードゴルフでは、読みやすさなどはいったん度外視して、ひたすらコードの長さを縮めていくという競技があるんです。具体的にはAizu Online Judgeにアカウントを作って始めました。そこからどんどんハマっていきましたね。

※コードゴルフとは「与えられたアルゴリズムを、可能な限りもっとも短いソースコードで記述する」競技プログラミングの一種です。

普段の勉強方法は?

(森田)競技プログラミングを始めて約7年なので勉強の仕方もどんどん変わってきました。仕事を始めてからは、毎週土曜日+空いている時間にコンテストに出て、復習をするくらいです。大学生の頃はかなりアツくやっていましたね!

(鮫島)やってることは、森田さんとだいたい一緒です。熱が冷めたわけではないですが、家庭を持つなど生活環境が変わって、最近はあまり時間を取れなくなってきています。
しばらくやらなくてもアルゴリズムを忘れることはないのですが、コーナーケースの見落としなどちょっとしたミスが出やすくなったり、タイピングのスピードが少し落ちてきたりはしているかもしれません。

(松岡)最近はあまり積極的に取り組んではおらず、直近のコンテストで出題されていた問題を後から解くくらいです。

参加経緯と練習方法を教えてください。

(森田)slackでゆるく募集していって、早く集まった順にチームを組みました。

(記者)それで優勝してしまうのはすごいですね!

(森田)会社の中に強い人はたくさんいるので。笑 当日に向けてチームで練習はしませんでしたが、去年の順位表を見てタイムより正確性を重視しようというのは決めていました。

※Indeed Japan株式会社様は3月4日から全社員がリモートワークをされていることもあり、チーム結成からPG BATTLE当日、結果発表会までslack上でのコミュニケーションが多かったようです。

PG BATTLE当日はどうでしたか(見直しはされましたか)?

(森田)かつおぶしの最後2問(難易度5、6)は比較的念入りにストレステストをしましたね。

(鮫島)せんべいの難易度4で2次元のグリッドを探索していく問題があったのですが、サンプルが不足していると判断して念入りにストレステストをしました。その他はあまり見直しに時間はかけませんでした。

(松岡)ましゅまろの問題難易度は難しくなかったですが、そもそも問題を勘違いしていないかなどの視点で全問確認しました。

(記者)解答し終わってから、採点終了までの間の心持ちは?

(鮫島)提出した後は、どうせ何もできないので、意識の外に出して気にしないようにしました。笑

(森田)私は少し意識してしまい、自分の結果が出るまで「まだかなぁ、間違えてないかなぁ」とか考えてしまいました。笑

(記者)採点結果を見て全員満点だとわかったときは、優勝したと思われましたか?

(森田)去年満点取っていたのが1チームだけだったので、チームが満点と知ったときは入賞しているかなとは思っていました。

PG BATTLEで良かったことや反省点はありますか?

(鮫島)全員満点取れたのはすごくよかったです。個人的には、他のメンバーより多く見直しに時間をかけたので、見直しを早くできたらもう少し良い結果を出せたかなと感じました。

(記者)見直したことによって間違いに気づいたりしましたか?

(鮫島)はい、見つかりました笑

(記者)やっぱり見直しは重要なんですね!笑

優勝賞金で何か購入したい/購入したものはありますか?

(鮫島)追加のディスプレイとか机とかを買おうかなあと考えているところです。

(記者)しばらく続くリモートワークの環境を整えるわけですね!

(森田)身の回りのものを買うのに使いました。いつもよりちょっとだけ高級なものを買ったりしています。笑

(松岡)私も特に使い道はなく、普段の買い物に使うと思います。

競技プログラミングと仕事内容は関連がありますか?

(森田)実際の業務で競技プログラミングのような問題を解くことはないですが、競技プログラミングで調べた知識などが活きることはありましたね。

(松岡)直接的ではないですが、競技プログラミングや情報科学に関する知識が役に立つことはあります。稀にですが競技プログラミングのアルゴリズム(例えばエイホ–コラシック法)が業務でのプログラムの高速化に直接的に役に立ったこともありました。

(鮫島)業務に直接役立つことはあまりないですが、他の人のコードレビューをする力は役に立っている気がします。また、プログラムがバグらないようにする注意力、この書き方だとバグりやすいかもという感覚が役に立っています。

今後大会に出場される方に一言。

(森田)PG BATTLEのようなチーム戦では、自分がミスしたり、誰かがミスしたりする緊張感がありますが、もし3人のうち誰かがミスるようなことがあっても仲良くやりましょう!笑 私は昨年大学の部で出場したのですが、チームではミスした人が他の人に何かおごるとというルールを決めて楽しんでいました。そして、幸い私はごちそうしてもらう側でした。笑

(鮫島)PG BATTLEの形式はちゃんとコードテストをするのが重要です。特にサンプルが弱いところはしっかりストレステストしましょう。そこがポイントだと思います。

(松岡)上位に入るには1問も落とせないコンテストなので、見直しが重要です。ちゃんと見直しを行いましょう!

さいごに

電子工作、ゲーム、学校の授業・部活と、プログラミングや競技プログラミングを始めたきっかけがバラバラでありながら、それぞれがプログラミングやアルゴリズムの力を高めてこられ、PG BATTLEでチーム優勝するに至るという三者三様の技術の磨き方をとても興味深く聞かせて頂きました。

また、お話している間は、インタビュアーの知識のレベルに合わせて、言葉の表現を変えてくださったり、難しい単語についてはチャットを使ってサポートしてくださったりと、とても素敵なお人柄を感じました!

PG BATTLEで好成績を残すコツとして、コードテストについて一歩踏み込んで教えてくださった点は、優勝者の生の声としてプログラマーの皆さんへの貴重なアドバイスになったのではないでしょうか。

チーム『あの人の外し方』の皆様、来年もご参加、ご活躍を楽しみにお待ちしております!!


RELATED POST関連記事


RECENT POST「プログラミング」の最新記事


この記事が気に入ったらいいねしよう!

om