今回は競技プログラミングを始めたい方向けの入門記事を改訂期待と思います
競技プログラミングとは?、競技プログラミングを始めたいけれどやり方がよく分からない、AtCoderとは?といった疑問に対して解説していきます
僕自身も競プロは始めたばかりでまだまだ初心者なのですが、始めたきっかけや面白さなどを紹介できればと思います
目次
競技プログラミングとは?
そもそも、さっきから書いている競技プログラミング/競プロとは一体どのようなものなのでしょうか?
競技プログラミングとは、与えられた問題をプログラミングで解くといったものです
例えば、5人の生徒のテストの点数を入力したら最高得点者を表示するプログラムを書いてね、といったような問題が出されます
それをいかに速くミスをすることなく解くか競うのが競技プログラミングです
プログラミングというと英語ばかりなイメージがありますが、日本で開催されているコンテストももちろんあります
特に高校生向けの大会もあるので、年齢を気にすることなく誰でも始めることのできる一種のスポーツです
競技プログラミングのメリット
競技プログラミングのメリットにはどのようなものがあるのでしょうか
誰でも参加できる
まず、競技プログラミングは誰でも参加できます
プログラミングというと専門的な知識が必要そうなイメージがありますが、競技プログラミングでは初心者向けのコンテストなども行われているので、競技プログラミングをしながらプログラミングを学んでいくといったことも可能です
日本で行われているコンテストがある
競技プログラミングには日本で行われているコンテストもあります
問題文が日本語で与えられるので英語になれていない方でも読みやすいですし、競技プログラミングを通じた交流もしやすいかと思います
後述するAtCoderは筆者おすすめの競技プログラミングのコンテストを開催している日本のサイトです
一人でも複数人でも楽しめる
プログラミング、あるいは競技プログラミングというと、どこか一人でやってるイメージを持たれている方もいらっしゃるかもしれません
それは半分は合っていて、半分は間違っています
確かにコードを書いていくのは自分なのですが、そこに至るまでに他の人にアドバイスをもらったり、他の人のコードを参考にしたりと、人と関わっていく場面も大いにあります
競技プログラミングに限っていえば、コンテスト終了後に参加者同士で感想を言い合ったり、書いたコードを見せ合ったりすることもよくあります
それらを考えると、決して一人で寂しいものではないということが分かるかと思います
また、競技プログラミングでは団体戦も開催されており、複数人でチームとして競技プログラミングのコンテストや大会に参加することが可能です
作りたいものが浮かばないあなたにもおすすめ
プログラミングというと、クリエイティブなもので、何かを作ってこそ、といったイメージもあるかと思います
しかし、あるプログラミング言語の書き方などは覚えたけれど、いざ何かを作ろうとすると浮かばなくて、結局忘れてしまう、そんなあなたには競技プログラミングがおすすめです
競技プログラミングは何かを作り出すというよりは自分の技術力で勝負するといった感じなので、自分がその言語をどれだけマスターしているか、自分にどれだけアルゴリズム的思考があるかなどを知るいい機会になります
特に作りたいものがないなあという人はぜひ競プロに参加してみましょう!
AtCoderとは?
さてさて、さきほども名前が出てきたAtCoderについて紹介していきたいと思います
紹介のためにまずはこの画像をご覧ください

これはAtCoderを運営している会社のchokudaiさんのTwitterより引用させていただきました
これを見ればAtCoderがどのようなものか、なんとなく分かるのではないでしょうか
AtCoderでは毎週末コンテストが開かれており、そこにみんなで参加して、競プロの腕を競う、といった感じです
日本では最大級の規模なので参加者も結構多いので、腕を競うには絶好の場所となっています
また、最近ではAtCoderJobsというサービスもできています
これはプログラミングコンテストを通じて就職・転職が可能になるサービスです
このようにAtCoderを通じて趣味を見つけるだけでなく、仕事にもつながる環境が用意されているのです
AtCoderで競プロを始めてみよう!
ここまで読んでみて、もし競プロに少しでも興味がわいたなら、ぜひAtCoderで競プロを始めてみましょう
AtCoderの新規登録はこちらから行えます→新規登録
新規登録がすんだら、まずはpractice contestに参加してみましょう
AtCoderではメジャーな言語はほとんど使用できます
自分が一番得意だなと思う言語を選んで問題を解いてみましょう
プログラミング初心者の方にはC++がよくおすすめされています
結果で「AC」が出ればその問題は正解ということです
「WA」や「TLE」と表示された場合には、間違いか問題文の制約に従っていない状態にあるので、見直してみてください
practice contestを解いてみて「お、これいけるぞ!」となった方にはこちらのQiitaの記事がおすすめです→こちら
解説もここより詳しいですし、参考にできる部分も多いと思います
競プロ•AtCoderのまとめ
いかがだったでしょうか
つたない文章でしたが、競プロ/AtCoderについて紹介させていただきました
この記事を見て、一人でも競プロに興味を持つ人が増えてくれればこれ以上の喜びはありません
自分もまだまだ初心者競プロerなのでよければお互いがんばっていきましょう!
それでは今回はこの辺で