Yukii

主にプログラミング(Flutter)についての記事を書いています。

AtCorderをDartで初めて受けたはなし

先月末(2020/8/22(土))に初めてArtCorderを受けました。
コンテスト名は「AtCoder Beginner Contest 177」。
点数自体は全然取れませんでしたが、とても楽しんでうけることができました!

AtCorderとは

Wikipediaによりますと、AtCoderとは、「競技プログラミング」と呼ばれるコンピュータプログラムのコンテストを行うサービスで、高橋直大氏が代表を務める運営会社を指すそうです。(AtCoder - Wikipedia
その中でも私は「AtCoder Beginner Contest (ABC)」を受けました。これは競技プログラミング初心者/初級者向けのコンテストでです。
配点は100-200-300-400-500-600固定の6問構成で、Rated対象は1999以下となっています。

ABC では、A 問題から F 問題までの 6 問が出題されます。(用語集 - AtCoder Beginner Contest 074)

  • A 問題: スコア 100 点であることが多い、簡単な文法の確認
  • B 問題: スコア 200 点であることが多い、簡単な for 文、if 文を含む処理, Fizz Buzz と同程度
  • C 問題: スコア 300 点であることが多い、計算量を意識したコーディングが求められるようになります
  • D 問題: スコア 400 点であることが多い、ここから先はアルゴリズムの勉強も必要になってきます
  • E 問題: スコア 500 点であることが多い、本格的な難しい問題です
  • F 問題: スコア 600 点であることが多い、一気に難しくなります。黄色を目指すなら解きたい問題です

(ちなみに私はA,Bは比較的短時間で回答できましたが、Cはスタック・オーバーフローを回避できずアクセプトに至りませんでした。。)

コンテストの参加方法

用語集 - AtCoder Beginner Contest 074
に詳しく書かれておりました。

Accepted の判断基準とは

運営が用意したテストを全てパスし、正しいプログラムであると判定されたときのみAccept(AC)になります。
メモリ制限を超えていたり、問題で指定された実行時間以内にプログラムが終了しない場合もACになりません。
(参考)
atcoder.jp
qiita.com

レーティングについて

AtCoder コンテストについての tips - Qiitaによりますと、レーティングによって8このランクに分かれているようです。

コンテストを受けた感想

ただただ楽しかったです!
コンテストを受けるために5日間ほど
AtCoder に登録したら次にやること ~ これだけ解けば十分闘える!過去問精選 10 問 ~ - Qiita
に掲載されている問題をdartで解いてみました。
AtCorderをdartで受ける人は数少なかったですが、AtCorderに提出されたコードは自由に閲覧できるので、それを見て勉強したり、
AtCoder に登録したら次にやること ~ これだけ解けば十分闘える!過去問精選 10 問 ~ - Qiita
を参考にして勉強しました。

もともと私はエンジニアになる前は数値計算を用いた理論研究者でしたのでこう言う問題を解くのは大好きです。
しかし、研究所にはめっちゃ性能の良いCPUがあるので計算オーダーなどさほど気にしていなかったのが、今回のコンテストでネックになってしまいましたね。。

今後の課題

次回のコンテストではCまで解くことが目標なので、計算量オーダーを意識したプログラムの組み方を勉強したいと思います。
(参考)
qiita.com