競技プログラミング

【独学】ゲーム感覚でプログラミングの勉強ができるサイトを紹介します【競技プログラミング】

プログラムが沢山映し出されているパソコンのモニター

こんにちは!サトシ(@satoshi365_blog)です!

 

この記事では、「競技プログラミング」を紹介します。

 

楽しくプログラミングを勉強できる方法ないかな?

と考えたことはありませんか?

僕が使ったことがあるプログラミング学習サービスは、分かりやすいけど、楽しくありませんでした

サトシ
サトシ
プログラミング学習サービスは、楽しさより分かりやすさに力を入れているのかもしれない

 

でも最近、「競技プログラミング」というものがあると知りました。

調べれば調べるほど、数学が大好きな僕にピッタリのプログラミング勉強法でした!

 

でも、競技プログラミングに向いていない人もいます。

 

それがどんな人か」も合わせて、競技プログラミングについて書いていきます^^

競技プログラミングって何?

はてなが書いてある黒板

競技プログラミングとは、プログラミングで色んな問題を解いていく競技です。

 

例えばこんな問題です。

黒板にN個の正の整数A1, … ,An書かれています.

すぬけ君は、黒板に書かれている整数がすべて偶数であるとき、次の操作を行うことができます。

・黒板に書かれている整数すべてを、2で割ったものに置き換える。

すぬけ君は最大で何回操作を行うことができるかを求めてください。

ABC081B – Shift onlyより引用

競技プログラミングでは、この問題を解くプログラムを書いて提出します。

 

楽しくないですか?

「プログラミングをしている」というより、「パズルを解いている」という感じで、控えめに言っても最高ですよね。

 

どこで競技プログラミングをできるの?

プログラムをオンラインで採点してくれるサイトがあります!

 

また、一部オフラインのサービスもあります。

オフラインのサービス

 

他にもたくさん競技プログラミングのサービスがあるので、ぜひ調べてみてください^^

 

競技プログラミングの良いところ

グッドポーズをしている男性

競技プログラミング良いところはこんな感じです。

競技プログラミングの良いところ
  • 楽しみながらプログラミングを勉強できる
  • 楽しみながらアルゴリズムを学べる
  • 色んな言語を勉強できる

それぞれ詳しく見ていきます!

 

楽しみながらプログラミングを勉強できる

さっきの問題をもう1回紹介します。

黒板にN個の正の整数A1, … ,An書かれています.

すぬけ君は、黒板に書かれている整数がすべて偶数であるとき、次の操作を行うことができます。

・黒板に書かれている整数すべてを、2で割ったものに置き換える。

すぬけ君は最大で何回操作を行うことができるかを求めてください。

ABC081B – Shift onlyより引用

例えば、黒板に書かれている整数が「4 8 12」だったとします。

この3つの数を2で割っていきます。

4 8 12

2 4 6

1 2 3

1と3は2で割れないから、ここでストップします。

3つの数を2で2回割れたので、答えは「2回」です。

 

どうプログラムしたら、この「2回」を計算できるでしょうか?

これを考えるのが競技プログラミングの楽しみです。

 

楽しみながらアルゴリズムを学べる

迷路を解いている人

アルゴリズムとは、「計算の仕方」のことです。

 

競技プログラミングでは、提出したプログラムの動作が遅いと「不正解」になります。

だから、余計な計算をしないように、アルゴリズムをしっかり考えないといけません。

 

つまり、競技プログラミングをすると、遊んでいる間にアルゴリズムが身につくのです!

 

色んな言語を勉強できる

例えば、AtCoderという競技プログラミングサイトでは、このような言語を使えます。

AtCoderで使える言語(一部)
  • C++
  • Lisp
  • Java
  • PHP
  • Python

他にも、だいたい50種類ぐらいの言語を使えます。

 

同じ問題をいろんな言語でプログラムすれば、いろんな言語の勉強になります!

 

競技プログラミングに向いてない人

指でバツを作っている男性

競技プログラミングに向いてないのは、こんな人です。

競技プログラミングに向いてない人
  • 数学やパズルなどが嫌いな人
  • プログラミングが苦手な人【このブログで解決します!
  • プログラミングが嫌いな人

では、それぞれ詳しく見ていきます^^

 

数学やパズルなどが嫌いな人

競技プログラミングでは、アルゴリズムを考えるのがとても大事です。

 

だから、パズルなどを考えるのが嫌いな人は、競技プログラミングも楽しめません

 

プログラミングが苦手な人【このブログで解決します!】

競技プログラミングは、基本的に模範解答がついていません

だから、プログラミングが苦手で、何も分からない人は困ってしまいます

 

でも安心してください!!

 

このブログで、僕が解いた競技プログラミングの問題を解説します

ここで解説するので、もしプログラミングが苦手なら、僕の記事を読みながら勉強してみてください^^

 

プログラミングが嫌いな人

プログラミングが嫌いだけど、プログラミングをしないといけない人もいますよね。

 

残念ながら、そういう人は競技プログラミングには向いていません

なぜなら、競技プログラミングは基本的にお金を稼げないからです。

サトシ
サトシ
お金が稼げれば、嫌いでも少しは我慢できるのに>_<

 

プログラミングが嫌いな人は、まずはプログラミング学習サービスなどで基本を勉強しましょう。

そして、クラウドワークスなどで稼ぎながら、プログラミングを勉強すると良いでしょう。

 

まとめ

この記事では、「競技プログラミング」について書きました。

競技プログラミングの良いところ
  • 楽しみながらプログラミングを勉強できる
  • 楽しみながらアルゴリズムを学べる
  • 色んな言語を勉強できる

競技プログラミングに向いてない人
  • 数学やパズルなどが嫌いな人
  • プログラミングが苦手な人【このブログで解決します!
  • プログラミングが嫌いな人

 

僕も今日(2019/12/18)から競技プログラミングを始めようと思うので、プログラミングを勉強したい人はぜひ一緒に頑張りましょう!

 

競技プログラミングの問題がどんなものか、より詳しく知りたい方はぜひ下の記事をお読み下さい^^

プログラミング
【競プロ】最初に解くべき過去問10問をPythonで分かりやすく解説します!【AtCoder】こんにちは!サトシ(@satoshi365_blog)です! この記事では、「競技プログラミング(AtCoder)に登録し...

 

少しでも参考になれば嬉しいです^^

プログラミングコンテストチャレンジブック第2版 問題解決のアルゴリズム活用力とコーディングテクニッ [ 秋葉拓哉 ]
created by Rinker

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です