Eyes, JAPAN Blog > 競技プログラミングの時代が来た

競技プログラミングの時代が来た

beko

この記事は1年以上前に書かれたもので、内容が古い可能性がありますのでご注意ください。

皆さんは、競技プログラミングという言葉をご存知でしょうか。
私が折を見て啓蒙して回っているので知っているという方もいらっしゃるかもしれませんが、これはプログラミングコンテストの一形態です。
このコンテストの参加者は、数時間の制限時間内に、与えられた数問の問題を解くプログラムを作成することを要求されます。問題の概要は、例を挙げると、

1円玉, 5円玉, 10円玉, 50円玉, 100円玉, 500円玉をそれぞれ C1, C5, C10, C50, C100, C500 枚持っている。
P円の買い物をしたい。支払う硬貨の枚数とお釣りとして受け取る硬貨の枚数の合計は、少なくとも何枚になるか?

といったものがあり、プログラミング能力だけでなく、数学力や論理的思考も試されます。
ゲーム等の作品を創って応募する類のコンペティションとは、また一風変わった類のプログラミングコンテストといえます。

さて、この競技プログラミングが今注目を集めているようです。
多くのこういったコンテストは高校生や大学生を対象とするものが多く、一般・無差別級のコンテストはあまり多くありません。その数少ないコンテストのひとつを運営するのが TopCoder です。ここでは毎月3回程度、SRM (Single Round Match) という、3問・75分のコンテストが行われています。参加者はSRMでの成績によってレーティングが付けられ、高いレーティングを保持するプログラマは世界中から羨望と尊敬を一身に集めることになります。
このSRMの参加者数が、最近になって増加しているそうです。原因としては、 最強最速アルゴリズマー養成講座といった記事によって、競技プログラミングの知名度が高まったことが考えられるでしょう。

また、未だベータ版ではあるものの、 CodeForces というコンテストも始まりました。私もまだ参加したことはないのですが、これもTopCoderのSRMとよく似たコンテストだそうです。

競技プログラミングによって、極めて重要な多くのスキルを得ることが出来ます。私の実体験としては、

  • コーディング速度・精度の向上
  • 論理的思考力の向上
  • アルゴリズムの知識の増加

といったものが得られたように思います。
何より、コンテストにおいて問題を解くことは至上の喜びです。厄介な問題に対して適切なアルゴリズムを組み立てた上で証明も加え、長いプログラムをバグも出さずに一息に書き上げて一発正解したときの感動は、きっとゴルフのホールインワンに近いものがあるに違いありません。私はゴルフをやったことが無いのでよくわかりませんが。

楽しい上に実力も付く競技プログラミングを、今こそ始めてみてはいかがでしょうか。

担当: 田山(就活の際には資格・技能欄にレーティングを書いたりしてみたい)

Comments are closed.