競技プログラミング、はじめました

プログラミング

どーも、masukenです。

最近、ブログやツイッターを更新せずに新しいことを始めていました。それは、

「競技プログラミング」す。

競技プログラミングって聞いたことがある人はいますか??
言うなれば、プログラミングのeスポーツのようなものです。

今回はプログラミング初心者の僕が競技プログラミングとは何なのか、や
実際に競技プログラミングに参加してみた結果を書きたいと思います。

スポンサーリンク

競技プログラミングとは??

まず、最初に競技プログラミングがどのようなものかを説明します。

競技プログラミングでは、参加者全員に同一の課題が出題され、より早く与えられた要求を満足するプログラムを正確に記述することを競う。コンピュータサイエンスや数学の知識を必要とする問題が多く、新卒学生の採用活動などに使われることもある[7][8]。多くのコンテストでオンラインジャッジが採用されている。
また、競技プログラミングに参加する人を「競技プログラマ」または「競プロer」と呼ぶことがある。

Wikipedia 「競技プログラミング」より

競技プログラミングとは、要するにプログラミングの”速さ””正確さ”を競うコンテストなんです。
日本だと「AtCoder」というサイトが運営している競技プログラミングが有名です。

AtCoderでは、大体毎週プログラミングコンテストが開催されています。
そのコンテストには、プログラミング初心者の人から上級者まで世界中の人々が参加しています。
最近のコンテストでは、リアルタイムで開催されるコンテストに5000人弱の人が参加しています。

最近ではITスキルが必須となっているため、サイトの利用者は右肩上がりに増えています。
どれだけ社会がプログラミングができる人材を必要としているかが分かりますね。

また、競技プログラミングは採用活動にも利用されています。

Atcoder内ではコンテストの結果によって個人のレーティング(戦績)が決まります。
採用担当者はそのレーティングを見て、志望者のプログラミング能力を判断するというわけですね。

このように、競技プログラミングはまだまだ成長段階にある、
自身のプログラミング能力を世界中の人たちとリアルタイムで競うことができる競技なのです。

AtCoder Beginner Contest に参戦してみた

昨日の土曜日、ちょうどコンテストが行われていたので参加してみました。

AtCoderでは難易度によって複数のコンテストが開催されていますが、
今回は一番ベーシックな内容である「AtCoder Beginner Contest 134(通称ABC)」に参加しました。

コンテストの問題数は6問で回答時間は100分です。
この中から問題を選んで、その問題を解いていきます。下に行くほど得点が高く難しい問題です。
実行時間制限やメモリ制限があり、難しい問題では計算量やコード記述量を考えなければいけません。
(もちろん、初心者の僕にはまだまだ理解できていないですが…)

実際に、問題を見てみましょう。

引用 AtCoder Beginner Contest 134 B- Golden Apple より

問題の形式はこのようになっています。
問題文と制約があり、それに則ってプログラムを記述します。
プログラムの合否は入力された値に対して、正しい出力がされるかどうかで決まります。

例えば、この問題の場合、N = 6 D = 2 という入力がされた時には、
出力が”2”となればプログラムが正解とみなされます。

このような入力のパターンは十数パターンあり、全てのパターンにおいてAC(Accept)されれば、
正解となり、得点がもらえます。

さて、僕の結果はと言うと…

こんな感じでした。3673位/4812人でした。まぁ最初なんでこんなもんですかね。

A、Bの問題はミスなく解けましたが、Cの問題で少し手こずりました。
Dは問題を読んで、無理そうだと、E、Fの問題は手を出していないです。

ちなみに1位の人はどのぐらいで解いているかと言うと、全ての問題を25分程度で解いています。
恐ろしいですね。

まとめ

今回は最近話題の競技プログラミングについて書いてみました。

元々プログラミングは多少やったことはありましたが、
コンテストでは散々な結果に終わってしまいました。

そのために、今後はAtCoderで勉強した問題をブログにあげて復習しようと思います。

自分のプログラミング能力を試してみたい、プログラミングの能力で就活をしたい
という方は、一度競技プログラミングを始めてみてはいかがでしょうか??

それでは、また。

コメント

タイトルとURLをコピーしました