セキュリティエンジニアを目指すブログ

セキュリティエンジニアを目指すブログです

競技プログラミングのすすめ(初心者向け)

初心者向けと書いてあるのは私が初心者だからです。。

 

競技プログラミング(競プロ)とは

競技プログラミングとは、制限時間内にプログラミングの問題を解いていきレートを競い合うものです。

 

国内の有名どころだとAtCoder(あっとこーだー)やpaiza(ぱいざ)などがありますね。

 

今回はAtCoderについて触れていきます。

 

AtCoderについて

AtCoderは、オンラインで参加できるプログラミングコンテスト(競技プログラミング)のサイトです。リアルタイムのコンテストで競い合ったり、約3000問のコンテストの過去問にいつでも挑戦することが出来ます。

atcoder.jp

 

コンテストは大体毎週土日の21:00~開催されています。

コンテストの種類は主にABC、ARC、AGCなどがありますが、初心者はABCから受けることをおすすめします。

ちなみにABCは(AtCoder Beginner Contest)の略です。

 

興味を持ったら早速チュートリアルを始めましょう。

会員登録の方法もここから確認できます。

atcoder.jp

また、以下の記事にも会員登録~コードの提出の仕方が詳しく記載されています。

qiita.com

まずはpractice contestの”Welcome to AtCoder“で標準入出力やコードの提出の仕方を覚えましょう。

言語は好きなものを使うことができます。

競プロ界ではC++を使う人が多いと思いますが、私はPythonで解いています。

 

プログラミング自体初めて、という方向けにはC++入門のページ(APG4b)があるので、

これに取り組むといいでしょう。

atcoder.jp

 

次はAtCoder Beginners Selectionを解いてみましょう。

atcoder.jp

 

Beginners Selectionを解いたら、

直近のコンテストに参加してみるか、過去問を解くと良いでしょう。

過去問を解くのにオススメのサイトはこちら。

https://kenkoooo.com/atcoder/

GitHubのアカウントが必要です。お持ちでない方はググってください

 

AtCoder Problemsは、どの問題を解いたかが一目でわかるので過去問を埋めるのにおすすめです。

また、バーチャルコンテスト(通称バチャ)を開催することができます。(仮想のコンテストのようなものです)お友達と一緒に時間を決めて解くのにオススメです。

 

初心者だとA~C問題は問題なく解けるかと思うので、チャレンジしてみてはいかがでしょうか。

 

おまけ

競プロの問題を解く時にオススメな実行環境はpaiza.ioです。

AtCoder標準装備のコードテスト画面でもいいのですが、こちらの方が個人的には使い勝手がいいと思います。

paiza.io

paiza.io は環境構築不要でプログラミングができるオンライン実行環境です。

テスト値を入力して実行結果を確認できるので競プロ向きだなあと個人的に思ってます。

ただ注意点が一つあります。

ログインしていないとコードが自動公開設定になってしまいます。

 

それでは良い競プロライフを!