山傘のプログラミング勉強日記

プログラミングに関する日記とどうでもよい雑記からなるブログです。

競技プログラミングやプログラミング問題のサイトのまとめ

プログラミング問題を解けるサイト

厳密にいえば競技プログラミング向けのサイトではないものもあるので、プログラミング問題を解けるサイトとして紹介していきます。

ここでいうプログラミング問題とは、ある入力が与えられたとき、その入力に対応する出力をするプログラムを記述するものです。まあ、実際にやってみればすぐにわかると思います。

ちなみに僕は競技プログラミングというかJavaの勉強を始めて3ヶ月ちょっとの初心者です。

yukicoder

f:id:yamakasa3:20180721135244p:plain

yukicoder

競技プログラミングをこれから始めるぞ!という方にお勧めなのが、「yukicoder」です。競技よりなサイトではないですが、豊富な問題と有志による解説があります。問題のレベルが細かく設定されているので、自分にあった問題を解くことができます。また、毎週金曜日にコンテストが開催されています。

AtCoder

f:id:yamakasa3:20180721140201p:plain

http://atcoder.jp/

日本の競技プログラミングとしては最大手?のサイトです。毎週末に何かしらのコンテストが開催されています。「競技」なので、レーティングという形でコンテストの成績が反映されます。また、コンテストによって問題の配点が異なりますが、配点はあくまでも目安なので、配点が問題の難易度を正しく表しているかどうかは保証していません。

配点が100~200の問題は特別なアルゴリズムを知っていなくても解けることがほとんどです。

出題された問題の一覧は「AtCoder Problems」というサイトで確認できます。自分のIDを指定することで解いた問題の状況が反映されます。

AtCoder Problems

Aizu Online Judge(AOJ)

f:id:yamakasa3:20180721141700p:plain

http://judge.u-aizu.ac.jp/onlinejudge/index.jsp

会津大学が開発したプログラミング問題のオンライン採点を行うサイトです。テストケースと制限時間が厳しい印象です。競技プログラミング向けの本の

で採用されている問題を解くことができます。なので、系統立ててアルゴリズムの問題を学習することができます。

僕はこの本でアルゴリズムの勉強をしています。

paiza

f:id:yamakasa3:20180721142748p:plain

https://paiza.jp/

プログラミング学習サイトとして有名な「paiza」です。paizaラーニングのスキルチェックやその他の講座でプログラミング問題を解くことができます。問題の傾向としては数学的な知識を試されるというよりかは、どのように実装するかといった問題が多い感じです。まあ、そんなに解いてはいないんですが。

スキルチェックの問題に関する内容を公開するのは禁じられているので、このブログで問題を取り上げることはありません。

CS Academy

f:id:yamakasa3:20180721143707p:plain

https://csacademy.com/

海外の競技プログラミングサイトです。問題文も英語ですが、書いてあることはなんとなく分かります。海外時間でコンテストが開催されるので、合わない人は別のサイトでコンテストをやると良いと思います。英語の問題にも慣れるためにもちょっとずつ解いていきたいですね。