1. HOME
  2. ブログ
  3. エンジニアになろう!
  4. プログラミング初心者には「競技プログラミング」がオススメ!

プログラミング初心者には「競技プログラミング」がオススメ!

今、競技プログラミングが熱い!

ミツオカミツオカ
2020年には、小学校でプログラミング教育が始まりますね!
にゃんこ師匠 にゃんこ師匠
そうじゃな、これからの世の中は、プログラミングスキルが必須の社会になっていくだろうな!
ミツオカミツオカ
む…私も、周りに取り残されないようにがんばらなくっちゃ…!
にゃんこ師匠 にゃんこ師匠
そうじゃな!『競技プログラミング』をやってみたらどうじゃ?
ミツオカミツオカ
『競技プログラミング』?

競技プログラミングとは?

競技プログラミングとは、参加者に課題が与えられて、それをプログラミングで解決する大会です。

2~3時間の短時間で終わるものもあれば、1日をかけて行うものもあります。

上級者向けの問題では、アルゴリズムの知識と高度な考察が求められます。

しかし、もちろん、初心者でも解ける問題も出題されます。

「プログラミンングを始めたいけど、何を作れば良いのかわからない」という方にも、スキル向上の場としてオススメといえます。

AtCoderで競技プログラミング

口で説明するよりも実際に手を動かした方が理解できると思います。

そのため、早速、競技プログラミングの問題を解いてみましょう。

今回は、AtCoder(アットコーダー)というサイトの、競技プログラミングの問題を解いて行きたいと思います!

【AtCoder】
https://atcoder.jp

ちなみに、AtCoderは、競技プログラミングサイトの1つで、(ほぼ)毎週末の夜に大会を開いています。

参加者は、大会で良い成績を残すと自身のレートが上昇するので、みんな一問でも早く、多く解けるように頑張っています。

にゃんこ師匠 にゃんこ師匠
みんなで競うことで、自分のプログラミングスキルもグングン成長するんじゃな!
ミツオカミツオカ
AtCoderが初めての方は、問題を解く前に「チュートリアル」を参考にして下さいね

AtCoderの大会過去問を解いてみよう

AtCoderでは、大会に参加するだけではありません。

自分の好きな時間に、AtCoderで行われた大会の過去問を解くことができます。

では、今回は、初心者向けの大会『AtCoder Beginner Contest(通称ABC)』のA問題を解いてみたいと思います。

【問題文】

X , A は 0 以上 9 以下の整数です。

X が A 未満の時 0、A 以上の時 10 を出力してください。

引用:AtCoder

この問題では、『入力 X , A が与えられて、X が A より小さければ 0 を、X が A より大きければ 10 を出力する』プログラムが求められます。

このようにABCのA問題は、入力を受けとり、if文などの基本構文のみを用いるだけで解くことのできる「簡単な問題」が出題されています。

コードを提出するにあたって、提出するコードのプログラミング言語を選択する必要があります。

言語は、「C++」「Python」「C#」など様々選ぶことができるのですが、C++を用いて問題を解く人が多いです。

理由としては、他の言語より実行速度が断然速いためです。

にゃんこ師匠 にゃんこ師匠
実行時間が長すぎると正解と認められないので、例えば、Pythonなどの実行速度の遅い言語を選択すると問題が解けない場合があるのじゃ!
ミツオカミツオカ
言語選択の際は注意しなきゃですね…!

提出コード

今回は、他の言語より実行速度が断然速い「C++」のコードを提出したいと思います。

ソースコード欄にプログラムを記述し、提出のボタンを押します。

すると、結果ページに飛びます。

結果

結果の欄に「AC」と表示されれば問題クリアとなりますが…

今回は、結果の欄に「WA」と表示されました。

にゃんこ師匠 にゃんこ師匠
これは、「Wrong Answer」の略であり、残念ながら「このコードは間違っていた」という意味じゃな
ミツオカミツオカ
コードを振り返ってみると、「 x >= a 」とすべきところが「 x > a 」となってました!

訂正したコード

コードを訂正し、再提出したいと思います!

確認

今度は、見事「AC」となりました。

これで無事、問題が解けました!

このように、間違いを訂正して「AC」となると、とにかく嬉しいのです!

にゃんこ師匠 にゃんこ師匠
今回は、過去問を解いてみたが、実際に週末の大会に参加すると、さらに白熱すること請け合いじゃ!!
ミツオカミツオカ
AtCoder以外にも、競技プログラミングを開催している団体・組織は様々存在するので、ぜひ積極的に参加することもオススメですね!

競技プログラミングをするメリット

競技プログラミングでは、プログラミングやアルゴリズムの知識・能力を得ることができます。

また、実は、就職やインターンにもつながる可能性があるのです。

例えば、AtCoderでは、AtCoderJobsというサイトを運営しており、新卒採用やアルバイト、インターンなどの求人情報を掲載しています。

AtCoderでのレートが良ければ、それらの求人に有利になるかもしれません。

競技プログラミングに参加すると、自身の能力向上と仕事の機会も得られて一石二鳥といえそうです。

にゃんこ師匠 にゃんこ師匠
競技プログラミングは、今後ますます注目されるじゃろうな!
ミツオカミツオカ
周りと差をつけるなら、すぐに始めなきゃですね!
にゃんこ師匠 にゃんこ師匠
皆も「競技プログラミング」始めてみるんじゃ~!

ライトコードよりお知らせ

にゃんこ師匠にゃんこ師匠
システム開発のご相談やご依頼はこちら
ミツオカミツオカ
ライトコードの採用募集はこちら
にゃんこ師匠にゃんこ師匠
社長と一杯飲みながらお話してみたい方はこちら
ミツオカミツオカ
フリーランスエンジニア様の募集はこちら
にゃんこ師匠にゃんこ師匠
その他、お問い合わせはこちら
ミツオカミツオカ
   
お気軽にお問い合わせください!せっかくなので、別の記事もぜひ読んでいって下さいね!

一緒に働いてくれる仲間を募集しております!

ライトコードでは、仲間を募集しております!

当社のモットーは「好きなことを仕事にするエンジニア集団」「エンジニアによるエンジニアのための会社」。エンジニアであるあなたの「やってみたいこと」を全力で応援する会社です。

また、ライトコードは現在、急成長中!だからこそ、あなたにお任せしたいやりがいのあるお仕事は沢山あります。「コアメンバー」として活躍してくれる、あなたからのご応募をお待ちしております!

なお、ご応募の前に、「話しだけ聞いてみたい」「社内の雰囲気を知りたい」という方はこちらをご覧ください。

ライトコードでは一緒に働いていただける方を募集しております!

採用情報はこちら

関連記事