はじめに
こんにちは、新二回生のまはらじゃです。突然ですが、皆さんは競技プログラミングという言葉を聞いてどんなことを思い浮かべるでしょうか? 「取っつきにくそう」だとか、「そもそも知らない」と思う人も多いかもしれません。
今回の記事では、競技プログラミングについて布教もかねて紹介したいと思います。
概要
競プロって?
Wikipediaによると
プログラミングコンテストで行われる競技の一種。
参加者全員に同一の課題が出題され、より早く与えられた要求を満足するプログラムを正確に記述することを競う。
どんな問題が出るの?
有名な問題だとFizzBuzzといった名前のゲームを題材にしたものがあります。
Fizzbuzzゲーム
- 2人以上のプレイヤーが1から順番に数字を発言していく
- 3で割り切れるときは「Fizz」を発言する
- 5で割り切れるときは「Buzz」を発言する
- 両方で割り切れるときは「FizzBuzz」を発言する
- 間違えた人から脱落していく
このゲームを題材にした実際の問題にはこんなものがあります
最初は難しいかもしれませんが、慣れてきたら解けるようになると思います。 そうなってきたら、競プロが楽しくなってきてハマるかもしれません...!!
競プロの始め方について
正直自分で説明するよりも他の人のブログ等の方が伝わりやすいと思うので、それを紹介します。
・競技プログラミングを始めたいけど何していいか分からないあなたへ
isoyamさんという方のサイトで、 はじめの入り口の部分が分かりやすく説明されています。
2021年3月現在ランダム部員が一番多く参加している競プロのコンテストのサイトです。だいたい毎週末にコンテストを開催しています。
AtCoderが運営している、C++(コンテストで使う人が多いプログラミング言語)の文法を1から説明してくれるサイト。わかりやすい。
・AtCoder に登録したら次にやること ~ これだけ解けば十分闘える!過去問精選 10 問 ~
けんちょんさんという方のサイトで、典型問題をわかりやすく解説してくれています。 文法になれて来たら取り組んでみるといいと思います。
競技プログラミングの面白さ
・パズルを素早く解くような楽しさ
・賢い人が考えたアルゴリズムを自分のものにすることが出来る
・人と競いながら力を付けることが出来る
・レートが上がったり、友達に勝つと嬉しい
・解けなかった問題が解けるようになった瞬間は気持ちいい
競技プログラミングをするメリット
・問題解決能力がつく
・論理的に考えられるようになる
・プログラミング得意になるかも
・身近なところだと、大学の授業のプログラミングが授業が楽になる
・もしかしたら就職で使えるかも
おわりに
競プロは奥が深く、難しい問題を考えていると時間が溶けることもよくあります。
しかし、その分解けた時の爽快感はひとしおだと思います。 解ける問題が増えてきたら楽しいですよ!!(バカデカボイス)
ここまでかなり雑に競プロについて語ってきましたが、少しでも魅力が伝わったなら幸いです。読んでいただきありがとうございました。