競技プログラミングを始めてみたいけど,どんなサイトがあるのかわからない.
atcoderで解けるレベルの問題は解き尽くしてしまった.
他にはどんなサイトがあるんだろう?
そういった方々に向けて各競技プログラミングサイトの特徴を解説していきます.
国内
AtCoder
現在20万人以上が参加している,日本最大のプログラミングサイトです.
初心者向けのコンテストである「ABC(AtCoder Beginner Contest)」と上級者向けの「AGC (AtCoder Grand Contest)」を中心に,企業主催のコンテスト等も開催されています.
コンテストは週末の約2時間程度で行われることが多いですが,数週間にわたる「マラソン型」のものも存在します.こちらは不定期です.
各コンテスト後にはYouTubeやpdfによって公式の解説が配信されており,学習者にとっては比較的充実した環境であると言えます.
また,AtCoder社は「AtCoder Job」という就職支援サービスも行っており,コンテストで良い成績を修め,レートが高くなるとその後のキャリアにもいい影響があります.
yukicoder
出題したい人と問題を解きたい人をつなげる,という目的で運営されているサイトです.
過去に出題された問題を解くことも可能ですし,コンテストが行われることもあります.
幅広いレベルの問題が用意されているため,初心者から上級者まで楽しめます.
利用にはgithubかtwitter,またはGoogleのアカウントが必要です.
海外
AtCoderでちょうどいいレベルの問題がなくなってしまった,という方は海外のコンテストにも挑戦してみましょう!
Codeforces(通称こどふぉ)
ロシアのプログラミングコンテストサイトですが,問題の出題,解説は英語でなされています.
英語に自信がなくても,テストケースを見ることで出題意図は理解できますし,翻訳サービスも多数あるのでそれほど障害にはならないと思います.
むしろプログラミングをしながら英語の勉強もできて一石二鳥ですね!
運営が日本の組織ではないこともあり,コンテスト開催時刻が遅めの時間(23:35〜など)でして,そこから2〜2.5時間程度のコンテストになるため,あまり健康的ではないですね…笑
コードの提出方法やレーティングのシステムに関してもAtCoderとは異なった仕様になっています.
詳細は別の機会にご紹介しようかと思います.
TopCoder
こちらはアメリカのコンテストサイトでして,多様な形式のコンテストが開催されています.
AtCoderやCodeforcesのような短時間でアルゴリズムを問われるコンテストや,機械学習などのデータサイエンスに関するコンテスト,アプリやシステム開発に関するコンテストなどが開催されています.
また,アルゴリズム系のコンテストについても,数週間かけて回答を改善していくタイプのマラソンマッチが定期的に開催されています.
こちらは日本時間の深夜1時とか2時に始まるものも多いので,なかなか参加するのは難しいかもしれませんね.
コードの提出形式も特殊なため,参加前に過去問で練習しておくことがお勧めです.
こちらについても詳細は別の機会にご紹介しようと思います.
Kaggle
こちらはデータサイエンスに関するコンペティションです.
用意されたデータを入力として,新しいデータの未知の項目を予測するプログラムを書くことになります.
用いる手法が回帰や深層学習などの機械学習の分野のものになるため,これまでにご紹介してきたコンテストとは趣が異なります.
チームでの参加も可能なため,知り合いで協力して参加するのもいいかもしれません.
Code Jam
年に一度開催される,トーナメント形式のコンテストです.
コンテストは,
Qualification Round→Round1(A,B,C)→Round2(A,B,C)→Round3(A,B,C)→Final Round
の順番で開催されます.
私は今年参加してみたのですが,Round1までしか進めませんでした笑
ラウンド毎に通過条件が設定されており,それをクリアすると次のラウンドに進むことができます.
絶対評価ではなく相対評価になる点もポイントです.
全体的に興味深い問題で,解いていて楽しい気分になれます.
Kick Start
こちらは,一年を通して大体一月に一回くらいにペースで開催されるコンテストです.
各ラウンド毎に順位が発表されるだけなので,参加したいタイミングで参加したいコンテストに参加することができます.
教育的な問題が多く,こちらも楽しく取り組める良問揃いです.
番外編!プログラミング学習サイト
paiza
無料の学習動画が見れるプログラミング学習サイトです.
競技プログラミングを少し優しくしたような,「スキルチェック」というものがあり,たくさん正答するとレートが上がります.
paizaは就職・転職支援サービスも行っているため,レートが上がると就職・転職に有利になります.
詳しくはこちらの記事をご覧ください.
Aizu Online Judge(AOJ)
会津大学のプログラミング団体が運営しているサイトで,オンラインジャッジシステムが使用されています.
日本情報オリンピックなどの大きなコンテストの過去問が収録されていたり,独自の学習コースが準備されていたりします.
また,自分が得意な問題や,どういった種類の問題を解いているのか,などの統計情報を視覚的に把握できるようになっており,アルゴリズムやデータ構造の学習に最適です.
Leet Code
海外のサイトなのですが,アルゴリズム,システム設計,データ分析など,様々なプログラミング力を磨けるサイトです.
課金をすれば国際的な諸企業の面接対策が行えますので,そういった道を目指される方にはもってこいだと思います.
毎週末にアルゴリズム系のコンテストが行われており,出場すればサービス内通貨として使えるポイントがもらえます.
優勝者にはかなりたくさんのポイントが入り,月々のサブスクリプションをポイントで賄えるほどです.
問題の解説も充実しており,学習者におすすめのサービスです.
各サイトの詳細については別の記事にて説明する予定です.
よろしくお願いいたします!
この記事は役に立ちましたか?
もし参考になりましたら、下記のボタンで教えてください。
コメント