みなさん、競技プログラミングというものを知っていますか?
プログラミングの競技と聞くと難しく感じてしまう人もいいかもしれないですが、実はそんな初心者にこそおすすめしたいものが競技プログラミングです。
今回は初心者から上級者までやっている「バチャ」について紹介します。
競技プログラミングとは?
与えられた問題を解くプログラムを作る競技です。
中高生向けの大会だとAtCoderやJOIが有名です。
プログラミングを基礎から学び、上達とともに少しずつアルゴリズムを習得していくことができるので、プログラミングを始めてみたいという方はぜひ競技プログラミングをやってみてはいかがでしょうか。
AtCoderというサイトでは毎週土曜日の21:00~初級者向けのABC(AtCoder Begineer Contest)が開かれます。
コンテストの成績に応じてレートというものがつくのでモチベーションを保ちやすいです。
競技プログラミングの人は全員といっても差し支えないほどAtCoderをやっています。とりあえずAtCoderのアカウントを作ってみるといいと思います。
以降の内容はAtCoderのアカウントを持っていることを前提に話をすすめます。
バチャとは
競技プログラミングで大切なのはたくさん問題を解くことです。
AtCoderやJOIのコンテストの過去問がたくさんあるので、それを解いていくことが上達のカギです。
過去問演習はAtCoder Problemsというサイトが便利です。
左上にユーザー名を入れると、解いた問題を色付けしたり今までの統計情報を見られたりします。
さて、このように過去問演習をすることができるのですが、せっかくなら時間を測って本番のコンテストと同じようにやりたいですよね。それをできるのがバチャ(バーチャルコンテスト)です。
バチャはAtCoderにも機能としてあるのですが、これは開催されたコンテストを別の時間に行うものです。
一方で、AtCoder Problemsというサイトにもバチャの機能があります。
これは同じ回のコンテストの問題を解くのではなく、過去問から集めて一つのコンテストを作ることができる機能です。
自由に問題数を設定したり問題の難易度を設定したりすることができるのでとても便利です。
また、他の人と同じ時間に同じ問題を解くことができるというのは大きな魅力です。何事も仲間と一緒にやるとモチベーションを保ちやすいので、ぜひ友達を誘って一緒にやってみてはいかがでしょうか。
それでは実際にどのように使うのか解説します。
AtCoder Problemsを使う準備
まずAtCoder Problemsにログインしましょう。GitHubでログインできると思います。
そしたらAccountを開き、AtCoderIDを入力してください。これでAtCoder ProblemsとAtCoderが連携されます。
バチャを作る
自分でバチャを作る時にやることです。
Account > My Contests > Create New Contest からバチャを作れます
Contest Information
Contest Title
コンテストの題名を決めてください。何でもいいです。
Description
コンテストの説明を書いてください。何でもいいです。
Public State
公開するならPublic、しないならPrivateです。Privateでもリンクを共有すれば複数人で参加でき安栖。
Mode
Normal、Lockout、Trainingとありますが、基本的にはNormalがいいと思います。
詳しい説明ははてなマークを押すと見られます。
Penalty
誤答したときのペナルティです。
AtCoderとそろえるなら300(5分)です。
Start Time, End Time
コンテスト時間です。
Expected Participants
ここに参加者のAtCoderIDを書いておくと、その人たちが解いていない問題を優先して選んでくれます。
Contest Problemset / Bacha Gacha
ここで問題を選びます。
1つ1つ問題を手で選んでも良いのですが、この下にあるBacha Gacha(バチャガチャ)というのがおすすめです。
ここでdifficultyやcontest typeを指定すると、自動で問題を提案してくれます。
More problem...というところをクリックすると問題数を増やすことができ、Addボタンを押すとProblemsetに追加されます。
全部入力できたらCreate Contestを押して完了です。
一緒にやる人とリンクを共有しましょう。
バチャに参加する
リンクをもらって開いたら、ログインしていることを確認してJoinを押します。
するとStandingsっていうところにアカウント名が表示されます。
これで登録完了です。
バチャの時間になるとProblemsというところに問題一覧が表示されるので、そこからAtCoderの問題リンクに飛んで問題を解きましょう。
回答を提出すると少し時間はかかりますが自動でAtCoder Problemsの方に反映されます。
さいごに
よい競プロライフをお過ごしください。