はじめに
「アルゴリズムに興味がある。」「アルゴリズムの考え方を勉強したい。」「就活でコーディングテストがあるから勉強したい。」という人!
今回は著者が、アルゴリズムの勉強で良い教材だなと思ったものを紹介したいと思います。
「興味があるけど、何からやればいいかわからない。」
私も最初、このような悩みがありました。 周りの競技プログラミングをやっている人や自身で調べて買ってみたもの、やってみたものの中からご紹介したいと思います。
今回紹介するものは、Webサイトと参考書です。
紹介
Webサイト
Atcoder Problems
日本で競技プログラミングといえば、やっぱりAtCoderですね!
いつもお世話になっているひとつです。
しかし、過去問を解きたかったり、コンテストの時間予定があって出ることができないことがあったりすると思います。
そこで有志の方が過去問をまとめてくれているサイト! それが、AtCoder Problems!!
このサイトのすごいところは、自分が解いた問題を色分けすることができることです!
例えば、解くこと(AC)ができたらボタンが緑色になり、間違え(WA,TLE etc..)ると黄色に変わり、一目でわかります!
緑に染めていくことがすごく気持ち良く感じます!
AtCoder Problems : https://kenkoooo.com/atcoder/#/table/
AOJ(AIZU ONLINE JUDGE)
次に紹介するサイトはAOJ!
会津大学が運営を行っているコンテストサイトです。
このサイトは公式が過去に出題した問題を掲載しているページがあることが特徴です!
さらに問題は勉強したいコースや順序良くスキルアップしていくページなどがあり、コンテンツがとても充実している。
アルゴ式
さて次は、アルゴ式!
このサイトの製作者である@sak_algoさんのブログでは、
「プログラミングを道具としてコツコツ積み立てることで、様々な知識に触れ、論理的思考力やコーディング力を身につけられるアプリケーション」*1
だそうです!
公開が2021年8月1日ということで、まだリリースして4ヶ月近くですが、コンテンツ量がものすごく多いと感じます! 探索やソート、グラフ、DPなどのアルゴリズムから論理的思考力を鍛えるためのコンテンツなど他のサイトにないコンテンツまでを網羅できるサイトです。
これぞ、本当のアルゴリズム教材であると思いました。感動(; ;)
Qiita
これはQiitaで書かれたブログで重宝しているサイトを紹介します。
今回は1サイトだけを紹介します。
そのタイトルは、
「レッドコーダーが教える、競プロ・AtCoder上達のガイドライン」*2
著者は、@e869120さんです。
こちらは初級者と中級者、上級者の3種類のシリーズがあります。 主にAtCoderを軸に記事が書かれており、競プロについて詳しく・わかりやすく書かれています!
この記事で練習できるところは、中級編の「分野別 初中級者が解くべき過去問精選100問」です。
この記事のいいところは競プロについて詳しく知れるに加えて、全コンテンツ合わせて100問が激選されています。この100問は先ほど紹介したAtCoderとAOJから主に選定されています。
いいとこ取り!そしてありがたい!
これをやっていき苦手だと感じたコンテンツをAOJやアルゴ式を使い、より深く勉強してみるということを私はしています。
参考書 - 本 -
続いてに本についてです。
これは誰もが知っているかもしれませんね。
この本は蟻本と呼ばれている参考書です。プログラミングコンテストの問題を通してアルゴリズムのしくみや考え方を楽しく習得できる参考書となっています。
蟻本はC++で書かれています。
C++で書かれているので、Pythonで書き直してみるなどしてみてもいいかもしれないですね。
この本は、アルゴリズムの紹介だけではなく、アルゴリズムを使いこなせるようになるために書かれています。
すごく図や表を用いてすごく読みやすく、またわかりやすく書かれていました。
一応、本書もC++で書かれています。
まだ読んだことがないという方は書店などで試し読みをしてみてはいかがでしょうか。
まとめ
いかがでしたでしょうか?
今回はアルゴリズムについて始めてみたい人、スキルアップしたい人向けに書いていきました。
今回はWebサイトから「AtCoder Problems」、「AIZU ONLINE JUDGE」、「アルゴ式」、「Qiita(レッドコーダーが教える、競プロ・AtCoder上達のガイドライン)」を紹介しました。参考書は「プログラミングコンテストチャレンジブック [第2版] ~問題解決のアルゴリズム活用力とコーディングテクニックを鍛える~]」と「問題解決力を鍛える!アルゴリズムとデータ構造 (KS情報科学専門書)」の2点をご紹介しました。
自分なりにより良いものをご紹介できたのではないかと思います。
何かを始めるとき、何から始めればいいかわからない事が多いと思います。そんなときにこの記事と出会っていただけたら本望です。
著者:@RysaHib