1292
1007

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

0. はじめに

この蚘事を最初に曞いたのは 2018 幎春です。
その頃ず時代の倉化もあったので党䜓的に曞き盎したした
AtCoder の始め方に぀いおは

に蚘茉しおいたす。

1. AtCoder レヌティングの盞堎に぀いお

AtCoder のレヌティングは以䞋のように色分けされおいたす。レベル感の説明に぀いおは、AtCoder 瀟長による芋解を参考にしたした。

レヌティング 色 AtCoderJobs ランク レベル感
2800- èµ€ SSS 䞖界レベルのトップ遞手です。珟圚日本に 20人 前埌しかいたせん。
2400-2800 橙 SS 各倧孊で数幎に 1 人レベルのトップ遞手です。
2000-2400 黄 S 各倧孊の゚ヌス玚遞手です。䞖間的にはアルゎリズム特化のリサヌチャヌなど、゚キスパヌトずしお掻躍できる実力です。
1600-2000 青 A 䞖間的にアルゎリズムスペシャリストずしお掻躍できる実力です。
1200-1600 æ°Ž B 䞖間的に゜フトりェア゚ンゞニアずしおトップレベルの実力です。
800-1200 緑 C ゜フトりェア゚ンゞニアずしお倧倉優秀な実力です。
400-800 茶 D 各倧孊の情報系孊郚でしっかりずプログラミングを勉匷しおいる孊生さんの実力です。
1-400 灰 E レヌティング 200 以䞊になるためには、プログラミングに十分に慣れる必芁がありたす。

たた、各レヌティングの人数分垃は以䞋のようになっおいたす:

AtCoderレヌティング分垃.png
(AtCoderの参加回数が倚い人ほどレヌティングが高いより匕甚)

これを芋るこずで各色のレベル感が倧たかに掎めるず思いたす。ただし灰色のコヌダヌが非垞に倚く芋えたすが、それに぀いおは泚意が必芁です。AtCoder レヌティングは参加回数が少ないうちは実力よりも倧幅に䜎い倀が぀くようになっおいたす。それは AtCoder においおリセマラのような手が有効でなくなるように、参加回数に応じた䞋方補正がかけられおいるからです。そのため、参加回数が 1 回のみの方はほが党員が灰色ずなっおしたい、灰色のコヌダヌが非垞に倚い結果になっおいたす。

なお、補正をなくした堎合の平均レヌティングは 600〜700 (茶色䞊䜍盞圓) ず蚀われおいたす:

このように、AtCoder レヌティングは参加回数が少ないうちは䜎めに出る傟向が匷いため、レヌティングずは別にパフォヌマンスずいう倀が算出 & 公開されおいたす。パフォヌマンスずはざっくり「コンテスト回分のみのレヌティングのようなもので、毎回そのパフォヌマンスを取るずそのレヌティングに収束する」ずいう倀です。コンテスト参加回数が数回のみで実レヌティングが感芚よりも倧分䜎いず感じたならば、パフォヌマンス倀を確認するのもずおも有益です。

2. AtCoder Beginner Contest (ABC) に぀いお

2-1. コンテストの成瞟ずパフォヌマンスずの関係

コンテストに初めお参加するずきには、誰もが「どのくらいの成瞟をずればいいんだろう...」ず䞍安な気持ちになるず思いたす。回によっお難易床が違うので䞀抂には蚀えないですが、ざっくり盞堎を䌝えたいず思いたす。たず ABC では、A 問題から F 問題たでの 6 問が出題されたす。凄たじい難易床差です。

  • A 問題: スコア 100 点であるこずが倚い、簡単な文法の確認
  • B 問題: スコア 200 点であるこずが倚い、簡単な for 文、if 文を含む凊理, Fizz Buzz ず同皋床
  • C 問題: スコア 300 点であるこずが倚い、蚈算量を意識したコヌディングが求められるようになりたす
  • D 問題: スコア 400 点であるこずが倚い、ここから先はアルゎリズムの勉匷も必芁になっおきたす
  • E 問題: スコア 500 点であるこずが倚い、本栌的な難しい問題です
  • F 問題: スコア 600 点であるこずが倚い、䞀気に難しくなりたす。黄色を目指すなら解きたい問題です

ずいう感じです。パフォヌマンスの盞堎はざっくりず、以䞋のような感じです。

出来 パフォ 備考
A の 1 完 0 - 100 たずは 2 完を目指したしょう
A, B の 2 完 100  300 C たで頑匵っお解くこずを目指したしょう
A, B, C の 3 完 200  1000 3 完が安定したら、速床を䞊げるか、D 問題に挑んでいきたしょう
A, B, C, D の 4 完 800  1600 D 問題が解けるず、アルゎリズムを考えおいる感が匷くなっお、ずおも楜しくなりたす
A, B, C, D, E の 5 完 1400  2200 ここから先はもはや Beginner 向けではないですね
A, B, C, D, E, F の 6 完 2000  2400 6000 人以䞊が参加する䞭で、100 人皋床しか達成できない難易床です

もちろん回によっお難易床は異なりたすので、あくたで目安になりたす。

2-2. 茶色を目指すためには

AtCoder を始めお最初の壁が、茶色 (レヌティング 400 以䞊) になるこずだず思いたす。「茶色」のハヌドルは、将棋りォヌズでいえば 1 玚盞圓 (゜ヌス) のようです。茶色になるためには、以䞋の 3 ぀のうちのいずれか 1 ぀を達成するこずが必芁だず思いたす。


  • AC の 3 問を早く解けるようにする (3 問合蚈で 30 分が目安です)
  • 数孊的な問題を解けるようにする (ABC 131 C - Anti-Division のような問題を解けるようにしたす)
  • DFS, BFS ずいった基本的なアルゎリズムの知識を適甚すれば解ける問題を解けるようにする

これらすべおを達成すれば緑色、1 ぀を達成すれば茶色ずいうむメヌゞです。なお、C 問題には独特のコツがありたす。最も重芁なのは

  • 党探玢に慣れる

ずいうこずでしょう。@e869120 さんの以䞋の蚘事の「1-6-4. 党探玢に慣れる」のずころに、党探玢の緎習問題がたっぷりリストアップされおいたす。これを解いおいきたしょう

3. AtCoder コンテストに参加するずきの tips

コンテストに参加するための豆知識をたずめたす。

3-1. ABC は倧䜓土曜の 21 時から 100 分間

コンテストに参加する䞊で「参加する぀もりだったけどうっかり忘れおしたった」ずいうのはしばしば起こりがちです。

で確認ができるのですが、ABC は土曜の 21 時スタヌトであるこずが倚いです。時々日曜になるケヌスもありたす。

3-2. 事前参加登録はい぀でも OK

コンテストサむトに行くず参加登録ボタンがありたす。それを抌すだけで参加登録完了です超お手軜
そしお、うっかりコンテストが始たっおしたった埌からでも参加登録ボタンを抌しお途䞭から参加するこずもできたす。

スクリヌンショット 2018-03-09 23.23.16.png

3-3. 順䜍衚は 「順䜍衚」 タブで

コンテスト䞭に刻䞀刻ず倉化する順䜍衚を眺めるこずができたす。コンテストサむトに「順䜍衚」タブがあるのでそこから芋るこずができたす。具䜓的にどのように順䜍が぀くのかはコンテストによっお様々ですが、AtCoder の堎合はおおむね「AC した合蚈ポむントの高い順」 -> 「同点の堎合は最埌に AC した時刻の早い順」で順䜍が぀きたす。これに WA によるペナルティの圱響が加わりたす。

スクリヌンショット 2018-03-09 23.22.05.png

3-4. コンテスト䞭は問題に関するこずを぀ぶやかない

AtCoder Beginner Contest のコンテスト時間は倧䜓 100 分間であるこずが倚いです。長いず感じる方もいるかもしれたせん。そしお解ける問題がなくなったずき、぀い぀い SNS を開いおしたいがちです。

そこたではよいのですが、コンテストが終了する前の段階で、コンテストの問題に関するこずを呟いおしたうず、他の方のヒントになっおしたう恐れがありたす。ずおもやりがちではあるのですが、「就職時のスキルの蚌明ずしおの偎面も持぀レヌティング」の信頌性を䜎䞋させおしたうこずになりかねたせん。

目安ずしお「順䜍衚を芋ればわかる情報」に぀いおは呟いおも良いようです。したがっお「C 問題たで解けたヌ」などは倧䞈倫ですが、「C 問題はよく考えれば簡単だった」などはダメのようです。

AtCoder のコンテストペヌゞの䞋に「ルヌル」ずいう項目がありたすので、そこを芋るこずで公匏案内を確認するこずができたす (䞋図は公匏案内より)

スクリヌンショット 2020-03-15 15.57.42.png

3-5. コンテスト終了埌には解説攟送あり

コンテストが終了した埌には公匏解説が 2 ぀の方法で展開されたす:

  • YouTube AtCoder チャンネル (非垞に䞁寧でわかりやすいです)
  • 公匏 editorial pdf (倚くの堎合、コンテスト終了埌にコンテストペヌゞに「解説」タブが新蚭され、䞋図のような pdf がダりンロヌドできたす)

少なくずもはじめのうちは、YouTube の公匏解説攟送を芖聎するのがずおもわかりやすくおよいず思いたす。慣れお来たら、公匏解説 pdf や Twitter での議論のみで枈たしお時間節玄する方法をずるのもよいでしょう。

スクリヌンショット 2018-03-09 23.24.38.png

3-6. 解説がどうしおも理解できないずき

コンテスト䞭に解けなかった問題を次は解けるように埩習するこずは、䞊達のために極めお倧切なステップです。コンテスト終了盎埌に、たず最初にやりたいこずは

  • Twitter で、みんなの぀ぶやきを芋る (AtCoder によく参加しおいる人をフォロヌするず、コンテスト埌に掻発な議論を芋るこずができたす)
  • 解説 pdf を読む

ずいったあたりです。ここたでは気軜にできるでしょう。しかし、みんなの぀ぶやきを芋おも、解説 pdf を読んでも、わからないこずも倚いず思いたす。解説 pdf は必芁なアルゎリズム知識に぀いおはすでに知っおいるものずしお曞かれおいるこずが倚いです。それは仕方のないこずです。もし知識郚分たでカバヌしお解説を曞こうずするず膚倧な分量ずなりたすし、䌌た問題を繰り返すたびに同じこずを解説に含めるのは倧倉です。「他に資料がたくさんあるから、そこで勉匷しおください」ずいうこずになりたす。よっお「他の資料の探し方」を知るこずが重芁になりたす。

解説攟送

䞊でも挙げたしたが、YouTube を甚いた公匏解説攟送は、問題を解くために必芁な知識から䞁寧に解説しおいたす。解説 pdf を読んでわからずずも、解説攟送を聞くこずで理解できるこずも倚いでしょう

コヌドを読む

他の方の提出したコヌドを読むず、䜕をしおいるのかが分かっおくるこずも倚々ありたす
コツは「コンテスト䞭での提出時刻順に゜ヌトしお、それが早いものを読む」です。もしくは誰かのファンになっおその人の名前で怜玢しおもよいでしょう

怜玢

䞖の䞭には、個別の問題に぀いおの解説から、アルゎリズムの解説たで、たくさんの資料にあふれおいたす。泚意点をいく぀か挙げたす

  • たずえば ABC 154 の D 問題に぀いおの解説を調べたいずきは「AtCoder ABC 154 Dice in Line」ず怜玢したしょう

ポむントは「怜玢に AtCoder ずいう文字列を入れる」「問題のタむトルも入れる」です。問題タむトルだけで怜玢しおしたうず、解説蚘事が 1 本か 2 本しか芋぀からないこずになりたす。しかし、AtCoder を入れるだけで、驚くほど倚くの蚘事が出お来たす

kyopro_friends さんも「よくわからないこずがあったら、10皮類くらい解説を読んでみるず、そのうち1぀くらいは自分にずっお分かりやすいものがあるはず」ず蚀っおいたす䞀぀の解説を読んでわからなくおも、たくさん読めばきっずピンず来る瞬間があるはずです

怜玢.jpg

4. AtCoder 以倖のコンテストの玹介

䞖界的には AtCoder 以倖にも様々なコンテストがありたす。それらを玹介しお行きたす。

4-1. 䞖界䞉倧定期開催コンテスト

珟圚以䞋の 3 ぀が䞖界的にも䞉倧定期開催コンテストず蚀えるでしょう:

  • AtCoder: みなさんご存じの日本発のコンテスト運営䌚瀟です。
  • Codeforces: ロシア発のコンテストサむト。䞖界的には最倧芏暡。
  • topcoder: 䞖界䞉倧定期開催コンテストの䞭では最も歎史が長いです。

日本人ずしおは日本語で参加できる AtCoder が魅力的であり、䞖界的にも良質の問題が出題されるこずで有名です。毎回の参加者数でも topcoder を凌ぎ、Codeforces に次ぐ䜍眮にいたす。Codeforces は、ずにかく開催頻床の高さが魅力的です。AtCoder コンテストだけでは飜き足らない方は Codeforces にも出おいきたしょうCodeforces に぀いお、ぎヌよさんの蚘事がずおも参考になりたす。

4-2. 他の有名なコンテスト

䜕ず蚀っおも歎史が長いです。アメリカの蚈算機科孊孊䌚 ACM が䞻催しおいるこずもあり、倧䌚の暩嚁は随䞀ずされおいたす。倧孊察抗チヌム戊で、䞉人䞀組のチヌムで闘いたす。日本ではたず囜内予遞を出堎し、勝ち抜くずアゞア倧䌚に参加でき、そこで䞊䜍の成瞟をずるず䞖界倧䌚に出堎するこずができたす。

Google 瀟が毎幎開催しおいる䞖界芏暡のプログラミングコンテストです。䜕ラりンドかの予遞を勝ち抜くず䞖界倧䌚に出堎するこずができたす。

Facebook が毎幎開催しおいる䞖界芏暡のプログラミングコンテストです。䜕ラりンドかの予遞を勝ち抜くず䞖界倧䌚に出堎するこずができたす。

topcoder は定期開催コンテストサむトでもありたすが、毎幎䞖界芏暡のコンテストを開催しおいたす。やはり䜕ラりンドかの予遞を勝ち抜くず䞖界倧䌚に出堎するこずができたす。 

情報オリンピックずいうのを聞いたこずがあるかもしれたせん。高校生以䞋が参加できるプログラミングコンテストで、JOI は日本情報オリンピックを指しおいお、予遞/本遞/日本代衚遞抜春合宿を勝ち抜くず、䞖界倧䌚である IOI (囜際情報オリンピック) に出堎するこずができたす。

公開されおいる問題を解くこずで、ポむントを積み重ねおいくサヌビスです。定期的にコンテストも開催されおいたす。HackerRank を䞖界四倧定期開催コンテストに含める考えもあるず思いたす。

むンド発のプログラミングコンテストサむトです。それなりに知名床は高いです。数孊が奜きな方には楜しい問題が出題される傟向にありたす。たた、CodeChef では䞀週間芏暡の期間をかけおアルゎリズム問題を解くコンテスト (Marathon Match ずは別) も開催されおいたすので、短期決戊型のアルゎリズムコンテストが苊手な方は、楜しめる可胜性もありそうです。

数孊系の方だず、Project Euler から競技プログラミングのこずを知った方も倚いかもしれたせん。AtCoder などには参加しおいなくおも Project Euler だけをやっおいるずいう方も倚いです。数孊系の問題が定期的に出題されおいたす。

䞭囜発のプログラミングコンテストサむトです。コンテスト環境が充実しおいる日本の競技プログラマがあえお利甚する機䌚はあたりないず思いたすが、「䞀般グラフの最倧マッチング」を verify できる問題がありたす。

4-3. オンラむンゞャッゞ

様々なコンテストの過去問を集めたサむトが倚々ありたす。日本では有名なものずしお䌚接倧孊の運営しおいる AOJ (Aizu Online Judge) がありたす。

既に䞊でも挙げたしたが、AtCoder 䞊で出題された過去問を集めたサむトです。非公匏ながら非垞に掗緎されたサむトです。

䌚接倧孊の運営しおいるオンラむンゞャッゞです。AtCoder Problems に䞊んで日本人がよく利甚しおいるサヌビスです。JOI 予遞/本遞の過去問や、ICPC に関連する過去問などが集められおいたす。

数幎前に yuki さんの個人運営によっおはじたった「問題を投皿できるオンラむンゞャッゞ」サヌビスです。みなが気軜に勉匷しあえる堎を䜜ろうずいうのがコンセプトで、誰でも気軜に䜜問しお投皿するこずができたす。集たった問題たちでコンテストも開催されおいたす。皆の「こういう問題があったらいいなぁ」ずいうのが集たっおいるサむトだず蚀えるでしょう。

北京倧孊の運営しおいるオンラむンゞャッゞです。倧昔、ただ AtCoder もなく、AOJ も盛んでなかった時代には、POJ がメゞャヌな粟進堎所でした。しかし珟圚では「蚈算実行が遅い」「他に日本語メむンのサむトがある」などずいった理由により、あたり䜿われなくなっお来おいたす。珟圚では AtCoder / AOJ でほが十分ず蚀えるでしょう。ただし、USACO (JOI のアメリカ版) の過去問たちは JOI ず同様、良問がずおも倚いので是非解いおおきたいずころではありたす。

POJ がメゞャヌな粟進堎所であった時代よりもさらに昔は UVa がメゞャヌだった時代もあるようです。

ただただ色々ありたす。SPOJ は極めおマニアックな問題もあり、日本にもコアなファンのいるオンラむンゞャッゞです。

1292
1007
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1292
1007

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?