PG BATTLE 2021 「企業の部」優勝者である、エムシーデジタル『wafunanode』チームの皆様にインタビューを行いました!
プログラミングを始めたきっかけやPG BATTLE参加の経緯、コンテスト当日の様子などお伺いしましたので、ぜひご覧ください!
●PG BATTLE 2021 ホームページ
https://products.sint.co.jp/pg_battle_2021
●PG BATTLE 2021 Twitter 結果発表会 まとめ
https://togetter.com/li/1800839
エムシーデジタル『wafunanode』チームのご紹介
(左) 熊崎剛生氏:ましゅまろ担当
(中) 伏下直哉氏:せんべい担当
(右) 佐藤遼太郎氏:かつおぶし担当
『wafunanode』チームはPG BATTLE 2021「企業の部」最多197チームの中で、見事1位を勝ち取られました。合計点:265点/300点、タイム:159分6秒/270分、という好成績を残されています。
インタビュー:PG BATTLE 優勝までの道のり
PG BATTLE 2021の優勝おめでとうございます!参加の経緯を教えてください。
(佐藤) 昨年のPG BATTLEは前職の会社で参加していたのですが、今年はエムシーデジタルの社内に競技プログラミングをかなりやりこんでいる社員がたくさんいると知って、面白そうだなと思って2人を誘いました。
(伏下) 去年と一昨年にPG BATTLEの学生の部で参加していて、今年も参加しようと思っていたところ、佐藤さんから声をかけていただきました。昨年は振るわなかったのですが、一昨年は4位で入賞を逃したので、今年こそは入賞するぞと思っていたので入賞できてよかったです。
(熊崎) 周りが参加していたので、PG BATTLEの存在は前から知っていました。自分から出る感じではなかったのですが、誘われたら出ようと思っていました。
(記者) 誘われたときはどうでしたか?
(熊崎) 昨年の様子を見ていたら結構ドキドキハラハラしていたので、出てみたいけどちょっと怖いという感じでした。楽しさ半分、失敗したらやばいかもという感じでしたね。
プログラミングをはじめたきっかけは?
(熊崎) 中学時代から始めました。
(伏下) 大学で必修授業があって、そこで初めてプログラミングに触れました。
(佐藤) 高校の時に"hello world"ぐらいはやっていたのですが、本格的に始めたのは大学3、4年生のころです。大学の必修授業であったので始めたのですが、エディタの使い方があまりよく分からなくて嫌になっていました。(笑)
競技プログラミングを始めたきっかけは?
(熊崎) プログラミングを始めたばかりのころは競技プログラミングを知らなかったのですが、高校でパソコン部の先輩から情報オリンピックについて教えてもらい、やってみたら面白かったというのが競プロを始めたきっかけです。
(伏下) 大学の必修授業でやっていたプログラミングがよく分からなかったときに、卓球サークルの友達がAtCoderをやっているのを知って、勉強のためにやり始めたのがきっかけです。最初はA問題に15 分ぐらいかかっていたのですが、面白いし、勉強になるし、だんだん簡単な問題が解けるようになると、アルゴリズムが面白く感じてハマっていきました。
(佐藤) 社会人1年目の新人研修で、電車が混むのが嫌で2時間早く出社していたら、そんなに早く会社に来ないでいいよと言われたので(笑)、喫茶店や電車の中で勉強して時間を潰していました。3か月間だったのですが、その間にかなりハマりました。
普段の勉強方法は?
(伏下) 社会人になってからはあまり時間が取れていないのですが、予定が合えばコンテストに参加しています。それでコンテストで解けなかった問題を復習するぐらいです。一番伸びたのは大学3年の夏休みで、毎日4時間解いていました。だらだらやるより、詰め込んでやる方が伸びたと思います。
(熊崎) 以前はコンテストに出たり、過去問を解いたりしていました。AOJ(Aizu Online Judge)やAtCoderの過去問を中心に解いていたのですが、最近はあまりやっていません。AtCoderのコンテストにたまに出る程度です。
(佐藤) コンテストに出ているときが一番集中できるので、そういう機会を使って全力でやったり、Twitterなどで競技プログラミングをやっている人とタイミングを合わせてバーチャルコンテストのようなものを実施してモチベーションを維持しています。
PG BATTLE当日はどうでしたか?
(佐藤) 開始前に戦略は確認しました。同点だと時間で決まるので、時間と点数のどっちを重視するか・・・。
(伏下) ミスった時の責任が大きいコンテストじゃないですか。速度を狙ってミスっても、「しょうがないね」ってなるけど、見直し重視でミスると「見直し重視なのにミスったの?!」ってかなり責任重大になるので、責任を避けるために速度を重視しました。(笑)
(熊崎) 昨年は満点が多くて時間で決まったので、今回もそうだろうという話になって時間重視で行こうと決めました。
(記者) 問題はリラックスして解けましたか?
(伏下) せんべいで参加した前回と前々回が割と解けていたので、ミスらなければ満点とれると思っていました。今回も3問目までは順調だったのですが、4問目がこれまでよりかなり難しくて・・・。それでもちゃんと考えれば解けると思っていたのですが、それでも解けなくてかなり焦っていました。最後はやっちゃったなーと。(苦笑)
(熊崎) ましゅまろの昨年の過去問を見ていた感じだと落ち着いてやれば解けるだろうと思っていたので、けっこうリラックスして解けました。
(佐藤) 解き方が分かるまでは大変ではなかったのですが、最後に自分の理解が若干あやふやで時間を使ってしまったので少し心配しました。でも、なんとかなるだろうと思っていました。
(記者) コンテスト後に連絡は取り合いましたか?
(伏下) 僕は提出時点で満点じゃないことが分かっていたので、「やらかしました」と2人に連絡しました。(一同笑)
(佐藤) 難しかったし、まぁまぁ・・・
(伏下) 許していただきました。(一同笑)
言語はあらかじめ決めていますか?問題を見て変えますか?
(熊崎) 普段、競技プログラミングではC++を使っているので、基本的にはC++です。たまに扱いづらい問題があるので、そういう場合は違う言語を使うことがあります。今回はC++で提出しました。業務だとPythonで、たまにC++を使っています。
(伏下) 僕も熊崎さんと全く同じで、基本的にはC++です。C++は速度も速く、競プロではC++を使っている人が多いし、解説ブログも多いので。
(佐藤) 基本的にはC++です。熊崎さんがおっしゃったように、C++で書きづらい問題は、ごくまれにですがPythonで書くこともあります。業務ではもっぱらPythonを使っています。
結果発表会はご覧になりましたか?
(伏下) 当日は友達の家でボードゲームをしていたので、ずっとミュートにして横目で映像だけ見ていました。(笑)友達に優勝したことを伝えたのですが、反応が薄くて悲しかったです。(一同笑)
(熊崎) 当日は発表会のことを完全に忘れていて旅行中でした。(一同爆笑)船の上で普通にTwitterをしていて伏下さんのツイートを見て優勝したらしいというのを知りました。
(佐藤) 僕は家でちゃんと見ていました。
(記者) 素晴らしい!ありがとうございます!(一同爆笑) 優勝と分かってどうでしたか?
(佐藤) 10位以内に名前は出るだろうなと思っていたのですが、優勝するとは思っていませんでした。2位まで名前が出なかったので、もしかしてと思ってびっくりしました。
(熊崎) 満点でバトルになると思っていたので、本当に優勝したのかな?と思いました。
PG BATTLEに参加してよかったことや反省点はありますか?
(伏下) 僕は、ただただせんべいの4問目が解けなかったことが未だに悔しい。そこに尽きます。
(記者) 復習はされたのですか?
(伏下) Twitterでほかの人の解法を確認しましたが、悔しかったので実装はしませんでした。(笑)
(熊崎) 最近はAtCoderばかりに出ているので、一発勝負のコンテストは久しぶりでドキドキ感がすごかったです。点数発表がすぐだったので、ひと安心しました。
(佐藤) 2年続けて満点が取れたので安心しました。点は取れたのですが、理解があやふやなところがあったので復習しました。
優勝賞金(Amazonギフト券24万円)はどのように使いましたか?
(伏下) まだ使っていません。あまり欲しいものがないので、少しずつ使っていこうと思っています。
(熊崎) ちょっとずつ使っていますが、まだ結構残っています。今、買い替えを考えているパソコンやモニターなどに使おうと思っています。
(佐藤) 沢山は使っていませんが、競技プログラミングの勉強用に数学の本に使いました。
(記者) みなさん堅実なのですね。
優勝トロフィーはどのように保管されていますか?
(伏下) 常にあそこに飾ってあります。
※エムシーデジタル様の、お洒落オフィス内のテーブル中央に飾っていただいておりました!ありがとうございます!
競技プログラミングは実務にどのようなメリットがあると感じられますか?
(伏下) マラソンコンテストというタイプの方の知識は最適化問題に取り組んでいるときにだいぶ生きています。アルゴリズムの方は最適化問題を解いている時に、ここの処理を速くするともっと効率がいいのに、といったときに役に立っています。
(熊崎) このアルゴリズムを使えば全部解決する、ということは直接的にはあまりないですが、これぐらいだったら解けそうという感覚は役に立つかな。お客様の課題は複雑で一筋縄ではいかないことがありますが、この部分はこれを使えば解ける、と分解して見ると役立つことがありますね。
(佐藤) 前職は研究開発のようなことをやっていて、その時はかなり役立っていました。今も最適化のアルゴリズムの設計を開発も含めて行っていますが、それが競技プログラミングのアルゴリズムと全く同じということはないです。ただ一つ一つの細かい作業において、条件の設定や分岐の考察などの考える過程は、競技プログラミングで問題を解く時に要求されるものとかなり似ています。そういう部分では訓練として有効ではないでしょうか。またテストケースの用意などで、競技プログラミングの経験などが生きているのではないかと思っています。
これからPG BATTLEに参加しようと思っている人たちに向けて、一言お願いします!
(佐藤) 出し直しが効かない独特なシステムなので、普段より慎重に落ち着いて取り組めば良いのではないかと思います。あと、友情を壊すことのないように。(笑)
(熊崎) 何がなんでも優勝するぞ!と気合を入れすぎるとミスしたときにすごい空気になるので(笑)、優勝は狙うけど和気あいあいと楽しむことを目的に参加してください。
(伏下) ミスした側の人間からいうと、ミスするととても悲しい気持ちになるので、ミスしても許してもらえる人とチームを組んでください。チームメイトには速度優先と言いつつ、こっそり見直しするといいと思います。(一同爆笑)
PG BATTLE 2022も開催予定です。参加していただけますか?
(全員) 参加したいと思っています!
(記者) 2連覇目指して頑張ってください!
※本文中では敬称を省略させて頂きました。
最後に
お忙しい中インタビューに応じてくださった『wafunanode』チーム様、誠にありがとうございました。学生時代や前職でPG BATTLEのご参加経験があった伏下さんと佐藤さんに、今回初参加の熊崎さんが加わり、『wafunanode』としての初陣をみごと優勝で飾った輝かしい3名様!競技プログラミングと実務のメリットについては、プログラミングに携わったお仕事をされている方はもちろん、将来を考えている学生の方にも貴重なアドバイスとなったのではないでしょうか。
PG BATTLE 2021「企業の部」には全体で最多の197チーム(591名)の皆様にご参加いただき、誠にありがとうございました!参加チームが増えると飛び賞(スポンサー賞)のチャンスも増えますので、我こそは!と思われる方はぜひご参加をお待ちしております。
●PG BATTLE ホームページ
https://products.sint.co.jp/pg_battle
●PG BATTLE 2021 結果発表会
- カテゴリ:
- キーワード: