【AtCoder 緑色を目指して】AtCoderとの遭遇【競技プログラミング】

技術ブログ 競技プログラミング

はじめに

こんにちは、駒嶺です。今回から競技プログラミングコンテストサイトAtCoderで緑色(Rating800以上)を目指す記事を連載します。
初回はAtCoderとはなんなのか?についてです。

AtCoderとは

AtCoderとは、プログラミングを用いて戦う頭脳スポーツ「競技プログラミング」のコンテストサイトの一つです。

https://info.atcoder.jp/overview/about/atcoder?utm_source=atcoder&utm_medium=button&utm_id=atcoder-top

AtCoderには、Algorithm Contest, Heuristic Contestの2種類のコンテストがありますが、今回私が挑戦するのはAlgorithm Contestの方です。

Algorithm Contestでは問題に対してそれを十分高速で計算できるアルゴリズムをプログラムで表現し、成績を競い合います。

Algorithm Contestの中でも初級者〜中級者向けのAtCoder Beginner Contest(ABC)と上級者向けのAtCoder Regular Contest(ARC)の2つがあります。
私が参加するABCは毎週土曜の21時から開催されます。(他のコンテストが被るときは日時変更あり)
21時になると問題が公開され参加者みんな一斉に問題を解きはじめます。制限時間は100分でそれまでにどれだけ多く、早く問題を解けたかで順位が付き自身のレートに反映されます。

コンテストの流れ

実際のコンテストの内容を少し見てみましょう。
過去に開催されたコンテストはAtCoder内で公開されており、いつでも問題を解いたり人の回答を見たりできます。

ABC363

A〜Gまでの7問があります。どの問題から解いてもかまいませんが簡単なA問題から順番に解くのが普通です。

A問題を見てみます。

何やら問題文以外にも実行時間制限というものが書かれています。
これはほとんどの問題では2秒に設定されています。
問題文にある条件で入力が与えられるので、その入力に対して求める出力を2秒以内に出力できるコードを書いて提出する。というのがABCの基本です。

問題画面を下までスクロールすると回答を提出する場所があります。

ここからコードを提出すると自動でテストが行われ、すべてのテストが通るとAC(正解)となります。
これを制限時間いっぱい、もしくは全ての問題を解き終わるまで続ける。というのがコンテストの流れです。

Ratingについて

コンテストが終了すると参加者全員に順位が付き、それによってレートが更新されます。
順位は得点が高い方が上、同得点の場合は問題を解くのが早かった方が上です。

Ratingは範囲ごとに色で分かれています。
私が目指す緑色はRating 800〜1200の範囲です。

緑色がどのくらいのものかというと

業務上よく発生する複雑な処理は、これくらいの難易度までの処理が多いため、解ける/解けないという視点においては、職種によってはこのレーティングを上限と見て良いです。一方、速さや正確さにはまだまだ先があります。

https://info.atcoder.jp/utilize/jobs/rating-business-impact

とのことです。
競技プログラミング初心者の壁がこの辺りのようです。

私の現在のレートは255(コンテスト参加回数が足りないため暫定)
過去の参加コンテストでのperf(推定レート)の平均を見ると500ほどです。

ここから12月末までに緑色を目指します。

おわりに

今回は初回なのでAtCoderの紹介をしました。
次回からはコンテスト参加後にそのコンテストの所感を投稿していきます。
本ブログを通じて私と一緒に競技プログラミングの世界を楽しんでいただければ幸いです。
また、各種ご支援させていただきますので、お気軽に「お問い合わせフォーム」よりお問い合わせください。

関連記事