限られた時間内でプログラミングの問題を解くスピードや正確さを競うのが「競技プログラミング」だ。参加者が問題の解答となるコードを提出すると、正解かどうかがテストケースにより自動で判定される。 競技プログラミングのサービスでは、コンテストで良い成績を取り続けるとレーティング(ランク)が上がる仕組みになっていることが多い。 例えば「AtCoder」という競技プログラミングサービスでは、レーティングを色で表現する。「水色(Bランク)」であればかなり優秀で、そこから上は「青色(Aランク)」「黄色(Sランク)」「だいだい色(SSランク)」「赤色(SSSランク)」になっている。 赤色は全体の1%未満しかいないエリートだ。赤色のレーティングを持つ人を指す「レッドコーダー」という言葉を聞いたことがある人もいるだろう。 競技プログラミングは基本的には趣味として楽しむゲームだが、実益もある。競技プログラミングの