AtCoderでプログラミングコンテスト(競技プログラミング)の勉強

25/12/2020

プログラミングはコンピューターに特定の仕事をさせるための命令セットですが、そこに職人的要素を加え、処理の速度などを競い合う競技プログラミングというものがあります。

競技プログラミングのスキルは必ずしも実際の業務で役に立つとは限りませんが、コーディング力を測る一つの指標にはなるでしょう。

AtCoderは日本の会社が運営している競技プログラミングのサイトです。
https://atcoder.jp/
リアルタイムのコンテストの他、過去問もありますので効率的なアルゴリズムの勉強であったり、就職面接でのコーディング試験対策であったり、コンテストを楽しむ以外にも様々な目的で利用されています。

AtCoderに慣れるための初心者向けの問題をまとめたAtCoder Beginners Selectionというページが用意されていますので、最初はここから始めてみるのがよいでしょう。
https://atcoder.jp/contests/abs/
文中でも言及されていますが、これはquiitaで以前「AtCoder に登録したら次にやること ~ これだけ解けば十分闘える!過去問精選 10 問 ~」というタイトルでまとめられた問題を練習問題としてまとめたものです。
https://qiita.com/drken/items/fd4e5e3630d0f5859067

PracticeA Welcome to AtCoder
ABC086A Product
ABC081A Placing Marbles
ABC081B Shift only
ABC087B Coins
ABC083B Some Sums
ABC088B Card Game for Two
ABC085B Kagami Mochi
ABC085C Otoshidama
ABC049C 白昼夢
ABC086C Traveling

AtCoder Beginners Selectionには上記のように問題がありますが、核問題コードの末尾がA, B, Cとなっています。
これが難易度を表していて、AからFまであります。
AtCoder Beginners Selectionは初心者用練習問題としてピックアップされた問題なのでCまでとなっているようです。

他のユーザーが解答例を公開していることもあり、参考になる場合もあります。
中には普通にコーディングしていれば気が付かないようなアルゴリズムを使っている解答もあります。
アルゴリズムはプログラミングの才能云々以前の問題として、知っているかどうかが前提としてありますので、他のユーザーのコードをいろいろチェックしてみるとよいでしょう。

Advertisements