先日、ヤフー主催のプログラミングコンテスト、「みんなのプロコン」を開催しました。今回で3回目の開催となりますが、競技プログラミングを趣味にしている人たちのなかで、「みんぷろ」が徐々に認知されてきているとうれしいです!
「競技プログラミングって何?」という人も、「競プロ大好き!」という人も、熱戦のみんぷろレポートをぜひご覧ください。
ヤフーのプログラミングコンテスト「みんぷろ」とは?
競技プログラミングとは、与えられた問題に対してどれだけ正確かつ素早くプログラムを作成できるかを競う競技です。海外で最も有名なコンテスト「TopCoder(トップコーダー)」には、世界中から120万人ものプログラマーやデザイナーが参加し、その技術を競っています。
国内で最も有名な競技プログラミングサイトは、「みんぷろ」でもお世話になっている「AtCoder(アットコーダー)」。同サイトでは毎週末、コンテストが開催されています。プログラミング初級者から上級者まで楽しめるとのことなので、関心のある人はぜひ一度のぞいてみてくださいね。
さて、「みんぷろ」はプログラミングの正確さとアルゴリズム力を競う個人戦のコンテストで、全国のプログラミング好きな人たちが楽しむことができます。
![image](https://66.media.tumblr.com/0c0ae447030876dab1bbc4ce27a8d0a6/3862ab89c695fbe8-8f/s500x750/143f3ea2df5d2970b9e67ded541045a58b726c3f.png)
「みんぷろ」は予選と本選の2部構成。予選の成績上位者40人が本選に進みます。
今回から本選選出の条件が変更された(※下記参照)ため、社会人の方も参加しやすくなりました。
※本選進出者40人の内訳を以下のとおり区分
1.中学生、高校生、専門学生、高専生、大学生、大学院生:20名
2.社会人:20名 上記「1.」以外は「社会人」の区分に含まれます。
予選は2019年2月9日(土)の21時から実施。そして予選を通過した40人の猛者たちが、2月23日(土)の本選に進み、東京・紀尾井町のヤフー本社にて、熱気あふれる戦いを繰り広げました。
いよいよスタート! まずは事業の説明、エンジニアの仕事紹介から
まずはテクノロジーグループ Developer Relations 内藤汐美が開会のあいさつに立ち、一日のプログラムを紹介。続いて、ヤフーが100以上のサービスを展開していることや、「課題解決エンジン(情報技術で人々や社会の課題を解決すること)」という企業ミッション、エンジニアの仕事についても説明。また、ヤフーは約6,500人の社員のうち、約3,000人がエンジニアやデザイナーなどのクリエイター職であるという話も紹介しました。
![image](https://66.media.tumblr.com/6d34a2685d8d25c3fa32824599b9b9b2/3862ab89c695fbe8-45/s500x750/9fc9112df4abb4badf8704d74ff7476819d614ed.jpg)
「意外と思われるかもしれませんが、実はヤフーではディープラーニングに特化したスパコン『kukai(クウカイ)』も自社で開発しているんです。そして、毎月1万円(2019年4月より半期で6万円)を個人の技術力向上のため補助する制度をはじめ、社会人ドクター進学支援制度、トップカンファレンスへの参加支援制度など、エンジニアにとってうれしい制度も多数用意しています。
また、開発拠点は東京だけではなく、大阪、名古屋、福岡にも設置されているんですよ。技術交流会や勉強会も、頻繁に開催しています。興味のある人はぜひ遊びに来てください!」(内藤)
![image](https://66.media.tumblr.com/03cc9195b5a8690bc7fef07ab3a8e98a/3862ab89c695fbe8-f1/s500x750/576f67437f3891962a146f392f09397540b073e3.jpg)
ヤフーエンジニアによるパネルディスカッション
続いてヤフーのエンジニアの生の声を聞いてもらうため、競技プログラミングの経験のある3人のエンジニアによる約30分間のパネルディスカッションが実施されました。
![image](https://66.media.tumblr.com/b06fab05539fff3bf85af4e9a7043673/3862ab89c695fbe8-b4/s500x750/cc42d7abf673f952b30c23059c99ba13a5078e43.jpg)
ベテラン代表で登壇したのは、サイエンス統括本部の町永圭吾、中堅代表は既存ツールの改善や社内ツールの刷新を行っている、システム統括本部の松山宜立(よしたか)、若手代表は新卒3年目、飲食本部でYahoo!ダイニングの予約管理システムのバックエンドを担当している薮内聖也です。
↓パネルディスカッション登壇メンバー![image](https://66.media.tumblr.com/b40333f44441e739d6bd07dd08143fed/3862ab89c695fbe8-c2/s500x750/aebc128eb881150bd339372afbf017aa641b1e45.jpg)
競技プログラミングは社会人4年目(2010年)に後輩から教えてもらったのをきっかけに始めた。特にマラソン形式の問題が好き。株式会社ウェザーニューズ主催のプログラミングコンテスト「Weathernews Programming Competition」での優勝経験あり。
![image](https://66.media.tumblr.com/8ecbf1bd4728ada2e7283a73657dd483/3862ab89c695fbe8-51/s500x750/1fb94282d777dca59996661c7e8a04d00a7fe1e8.jpg)
![image](https://66.media.tumblr.com/663472bfa4075c36ca9c691a6b8453fc/3862ab89c695fbe8-90/s500x750/26f0dd7af56972cca1e7af43194f0d67a18e725b.jpg)
高専4年目のときに教員の勧めで「ACM-ICPC(ACM国際大学対抗プログラミングコンテスト)」に参加するも、予選通過できず。その後大学院1年生時に「AtCoder」を紹介されて以来、競技プログラミングにのめり込み、いまも日常的に過去問を解いている。
競技プログラミングをやっていて良かったことは?
![image](https://66.media.tumblr.com/321e82784a3e9c2eaa52bf77150a336c/3862ab89c695fbe8-2a/s100x200/23b46d3994d54689fd7059c24791169fa65f8e68.jpg)
![image](https://66.media.tumblr.com/53c698126e52bae10de3599da0a64637/3862ab89c695fbe8-b9/s100x200/beaa1db8c19a2011d089e02766fc96bb8a1f6e45.jpg)
ちなみにプログラミング同好会のメンバーは十数人で、普段は過去問を解いたり、ゴルフをしたり(笑)といった活動をしています。昨年の夏には社内コンテストを開催したのですが、近いうちに社外でもコンテストを開ければいいなと思っています。
![image](https://66.media.tumblr.com/a6310383c9369a8b000e316fdfb60632/3862ab89c695fbe8-40/s100x200/b81be9c350a1e1fdcab308a5949d540cc1117e42.jpg)
また計算量を見積もる力もついてきました。ここは最適化した方がよいとか、最適化しない方がよいとかそういう勘が働くことも、競技プログラミングをやっているからかなと思います。私は大阪で勤務しているのですが、大阪でも技術力を向上させるような勉強会が多数開催されています。
![image](https://66.media.tumblr.com/0efecb3f7b01c366989e2ab25740b82e/3862ab89c695fbe8-49/s500x750/3c0bb125f318f50c8117e4ed1bae77fac8ef9f06.jpg)
最後に、「グッドラック、ハブファン!」(松山)、「皆さんの健闘を祈ります」(藪内)というメッセージとともにパネルディスカッションは終了しました。
![image](https://66.media.tumblr.com/26a3a0a2b35138c8c664d4732b176cd3/3862ab89c695fbe8-8e/s500x750/0b9be995bc3ab718d0102c5b7b6e8aae03dd8d4d.jpg)
緊迫感あふれる空気のなか、本番スタート!
10分間の休憩を挟み、いよいよ本番、競技スタート!
![image](https://66.media.tumblr.com/6d554247ee0ca07704da5f8f574a239b/3862ab89c695fbe8-72/s500x750/7c9e5760812a64e3be2e149e47ff99ee444ecd69.jpg)
問題はA~Eの計5問で構成。Aから順に難度が上がり、配点も高くなります。4,000点満点。解答を誤るとペナルティーが与えられるため、速さだけでなく正確性も重要になります。
問題はこちらから(⇒)確認できます。
黙々と問題に取り組んでいく参加者の皆さん。会場には、式を書くボールペンの音、タイピングの音だけが響いています。
![image](https://66.media.tumblr.com/8a1dca75eb95ffe4b0d4e04b848d8140/3862ab89c695fbe8-2e/s500x750/872ee16766927c948f82c960e54cdb819989d4b1.jpg)
![image](https://66.media.tumblr.com/2be75ed4e6a7666c71d58b3465b549b3/3862ab89c695fbe8-94/s500x750/7711434302d78d138a5bf85f02436823881ca448.jpg)
15時50分、2時間の競技が終了。解説が始まるまでの休憩時間には、緊張の解けた参加者の皆さんが集まって談笑する和やかな姿が見られました。
![image](https://66.media.tumblr.com/e4890490c9765c7faa41168590125e14/3862ab89c695fbe8-d8/s500x750/4348245432ad74e7228e4e79064366d7da4dbcb6.jpg)
![image](https://66.media.tumblr.com/7c466a3558ec20f0117d1eafba923244/3862ab89c695fbe8-bb/s500x750/342bae67c64d7fd3d32b29da0cc6c02c7efaf6f5.jpg)
「AtCoder」高橋直大さんによる解説
休憩終了後、「みんぷろ」開催に協力をしていただいている「AtCoder」の高橋直大さんに解説をしていただきました。
![image](https://66.media.tumblr.com/febcf325d6efe9e7a5aaa315005c36c4/3862ab89c695fbe8-3f/s500x750/a0b593c153b396fcb6262dcc839a7674abbfa2f2.jpg)
解説の詳しい内容は こちらから(⇒) 確認できます。
前述のとおりAから順に難易度が上がる構成でしたが、高橋さんいわく「Aの問題が意外と難しかった」とのこと。そのため、最初にハマってしまい、時間がなくなった方も多数いたようでした。
高橋さんの解説が終わり、懇親会の時間に。結果発表は懇親会の後半で行われるため、みんなで和気あいあいと交流を深めながら、発表の時を待ちます。
![image](https://66.media.tumblr.com/8d318fc1b26ed2a00e8bfe39a964f232/3862ab89c695fbe8-86/s500x750/6d07bff5c3aa4e7822d68d2459c94bcda4b96d02.jpg)
懇親会は「皆さんのレート向上を祈願して乾杯!」の発声でスタート!
![image](https://66.media.tumblr.com/ca4c83475b760b8171a965da2de02a24/3862ab89c695fbe8-c9/s500x750/708584f81c017058e5f480cce3a72e7f2cc1c053.jpg)
参加者の話題のほとんどは、やはり今日の問題や競技プログラミング。皆さんがいかに競技プログラミングを愛しているか、その熱意が伝わってきます。とにかくプログラミングについて話すことが楽しい、そんな雰囲気がひしひしと感じられました。
![image](https://66.media.tumblr.com/541d2f6bdb252a298f30a5096fe03211/3862ab89c695fbe8-25/s500x750/52f9427d6dcba946b5b6b3273f513183ea21c47b.jpg)
ドキドキ、ワクワクの結果発表!
いよいよ、結果発表の時間です。5位から順に発表されます。
5位:uwiさん
目録としてYahoo!ショッピングの買い物券1万円分が贈呈されました。
![image](https://66.media.tumblr.com/b5004347fe1b89cdbceab0fd0a9d0658/3862ab89c695fbe8-cd/s500x750/7d3ba19b15f6d672419e2b0386567613f3cec841.jpg)
4位:semiexpさん
4位はYahoo!ショッピングのお買い物券2万円分の贈呈です。
![image](https://66.media.tumblr.com/ba729b77afffe1c00ac39fcbe999441f/3862ab89c695fbe8-af/s500x750/00e686567a2b378af7c17a07532f318a2f0f3522.jpg)
3位 yosupoさん
3位のyosupoさんには、「みんぷろ」のロゴ入りの盾と5万円分のYahoo!ショッピングのお買い物券が贈呈されました。
![image](https://66.media.tumblr.com/47d9bc1d14bd051acd661cab96db07e3/3862ab89c695fbe8-6b/s500x750/5901b69079072c897fbcf226b460f53ec534cac4.jpg)
yosupoさんは23歳の大学院生でアルゴリズムの研究に従事しているとのこと。「みんぷろ」参加の感想について次のように語ってくれました。
![image](https://66.media.tumblr.com/ed8e44544c46d41a25ecd5e45bd1b38b/3862ab89c695fbe8-ec/s100x200/19d77020639307a9fd93798aed76f1fa4a91471b.jpg)
2位 maroonrkさん
2位の maroonrkさんには、盾と10万円分のYahoo!ショッピングのお買い物券が贈呈されました。
![image](https://66.media.tumblr.com/c16838aabc84dd1cc368e3dc1bd181e6/3862ab89c695fbe8-3c/s500x750/be94dac995eeb69c46701dd02c83084323dec8b3.jpg)
maroonrkさんは19歳の大学1年生。今は教養課程ですが、専門課程(情報科学科)への進学を考えているとのこと。中学生の頃から競技プログラミングに熱心に取り組んでいるそう。maroonrkさんにも感想を伺いました。
![image](https://66.media.tumblr.com/23c4036ab376d5fd92ca1ac2e6d3503a/3862ab89c695fbe8-f1/s100x200/f9682ec197bb85544bbb44873dac4d597e8f5216.jpg)
1位 yutaka1999さん
yutaka1999さんには、優勝の盾とYahoo!ショッピングのお買い物券20万円分が贈呈されました。
![image](https://66.media.tumblr.com/af574b788baf968c87dfe311196b4ed5/3862ab89c695fbe8-67/s500x750/9609758e7928f64f69c203cff2c2269839290521.jpg)
yutaka1999さんも19歳の大学1年生。上位の入賞者の皆さんとは、いろいろなプロコン会場でよく顔を合わせる仲間なのだそうです。見事優勝を飾ったyutaka1999さんに感想を伺いました。
![image](https://66.media.tumblr.com/f41f2ebd73e573278f343be2928ec74c/3862ab89c695fbe8-8d/s100x200/59e61fe9ca8f47fadb68e46dd90b34c317d99e0b.jpg)
競技プログラミングが大好きなヤフー内定者の感想は?
今回初めて本選に出場できたという、ヤフー内定者の澄川 憲太郎(smiken)にもお話を聞いてみました。
「今日の問題は少し難しかったです。参加者のレベルが高かったので、難しい問題が出るかなとは予想していましたが…。でも実力者の方々ばかりのこの場に自分がいられていることが幸せです。競技プログラミング歴はまだ4年目ですが、上位陣の皆さんは中学生の頃から始めているつわものばかり。ですが、私にはその分伸びしろはあるかなと思っています」
![image](https://66.media.tumblr.com/40ab5fdacc1fe4db80e1de405d32b1ce/3862ab89c695fbe8-5e/s500x750/3acd7fd8e7dc0ccb0b0a334ff6223155de34bc7c.jpg)
企業が主催するさまざまな競技プログラミングに趣味で参加し、「みんぷろ」にもおととしの1回目から参加してくれていました。
「今日のコンテストについては、自分が解けるレベルの問題は無事に解けたので満足しています。時間内に全問解き終えるというのは高い実力を持った人しかできません。だから私は自分が解ける問題に集中しました。特にBの問題は、自分のなかで考察がうまくいき、実装もバグもなくうまくいったので、快感がありました」
大学でもアルゴリズムの研究をしているという澄川は、なぜ、ヤフーを就職先に選んだのでしょうか。
「プログラミングコンテストを主催していることが大きな決め手となりましたね。競技プログラミングでの成績とエンジニアとしての能力は必ずしも相関しないという意見もありますが、ヤフーの競技プログラミングを大切にする文化が自分に合っていると思いました。もちろん、これまでの研究で培ったアルゴリズムの知見を生かせる会社であることも入社理由の一つです」
最後にヤフー入社への意気込みを語ってもらいました。
「プログラミングにはある程度明るいのですが、パソコン自体についてはそこまで詳しくありません。入社までに勉強したいと思います」
高橋直大さんを直撃!「競技プログラミングはプログラミングのベース。もっと広まってほしい」
最後に、「みんぷろ」開催に協力いただいた「AtCoder」の高橋直大さんにお話を伺いました。
![image](https://66.media.tumblr.com/7c00b727a7dc859313432464b3597c92/3862ab89c695fbe8-53/s500x750/0aa640dc1c3faa781e2a58c60088be0d202635ec.jpg)
「今回は社会人枠が設けられていたので、通常の競技プログラミングより、参加者の年齢層は高かったと思います。その分問題の難易度も比較的高く、多少苦戦されていた場面も見られましたが、皆さんがんばって解いてくれたと思います。
本選に進んだ40人のうち、半分はRed Coder(※プログラミングコンテスト「TopCoder」における成績上位者)といったように、今回は実力者ばかりでした。彼らは、ほかの参加者と比べて1~2段、レベルが上だと思います。
例えば優勝されたyutaka1999さんは過去に『国際情報オリンピック』で金メダルを取っています。彼だけではありません。『国際情報オリンピック』で金メダルを取っている方は今回の本選参加者のなかに10名くらいはいるのではないでしょうか」
競技プログラミングに取り組むメリットについても聞きました。
「競技プログラミングはプログラミングのベース。どの業界でも役に立つ。もっと広まってほしいですね」
表彰が終わり、 「みんぷろ!!」のかけ声に合わせて、記念撮影!
![image](https://66.media.tumblr.com/f7f12d0aa4cf371c0d6fa46264871109/3862ab89c695fbe8-e2/s500x750/4eb149e2568b9a6b4019caf492f1caabbfcedfcc.jpg)
こうして3回目となる「みんぷろ」は無事終了しました。
今後の「みんぷろ」(「みんなのプロコン」)の開催情報はTwitterの公式アカウントでお知らせいたしますので、ぜひフォローをお願いします!
「みんなのプロコン Twitter公式アカウント」はこちら(⇒)