HackerRankをはじめよう!

こんにちは、ksr_cyclです。皆さんはデータ構造とアルゴリズムは好きですか?

私は普通です。好きになれるようにHackerRankで勉強をします。

HackerRankとは

HackerRank

多くのプログラミング問題に挑戦出来るサービスです。

また、スタートアップアクセラレーターである、Y-Combinatorが受け入れた最初のインド企業としても知られています。

使用できるプログラミング言語は、C, C++, Java, Ruby, Python, JavaScript, Rust 等、多くの選択肢があります。

問題は、

・アルゴリズム

・データ構造

・数学

・データベース

・正規表現

等、数多くのカテゴリから出題されており、企業のコーディングテスト対策、またコーディングテストのプラットホームとしても使われています。各問題に対して、ディスカッションスレッドが用意されており、多くのユーザーと問題に対しての議論ができます。

はじめかた

HackerRankのアカウント作成をするにあたって、サインアップします。 右の「For Job Seekers」を選択します。

f:id:ksr_cycl:20220405102343p:plain

アカウント作成が終わったら、今回は初級の問題を解いてみたいと思います。「Algorithms」を選択します。

f:id:ksr_cycl:20220405102927j:plain

問題を解いてみる

先頭に出ている「Solve Me First」を解いてみます。

f:id:ksr_cycl:20220405103407p:plain

クリックすると、このような画面が出てきます。

f:id:ksr_cycl:20220405103902p:plain

問題を読む

英文で書かれた問題文を読みます。この問題は簡単です。

f:id:ksr_cycl:20220405104531p:plain

問題文がなかなか理解が出来ない場合は、問題文の下にある

Sample InputSample OutputExplanationをじっくり読みます。

f:id:ksr_cycl:20220405103926p:plain

なんとなくでも問題のイメージが出来てくるはずです。

問題を解く

次に問題を解いていくので、使用する言語を選びます。私はPython3を選びます。

このように、すでに関数が書かれており、その中にソリューションを書いていきます。

この問題では、すでにヒントが書かれてますね。

f:id:ksr_cycl:20220405104048p:plain

問題が解けたら、下のRun Codeをクリックして、テストします。

f:id:ksr_cycl:20220405104829p:plain

f:id:ksr_cycl:20220405105325p:plain

動作は確認できました。

コードを提出する

問題を解けたら、コードを提出します。

Run Codeの隣にある、Submit Codeをクリックして、提出します。

f:id:ksr_cycl:20220405124556p:plain

再度、用意されたテストケースを通過したら、問題クリアです。

問題の難易度が上がるにつれて、この部分が非常に難しくなってきます。




f:id:ksr_cycl:20220405124652p:plain

この問題はクリアです。

もし問題を解くのに詰まったら、Disscussionsから質問もできます。

また、問題を解き終わったらLeaderBoardから自分の順位が確認出来ます。

その他

問題を解いていくと、ポイントが加算されていき、一定の量に達するとバッチがもらえます。

またこういった問題の他に、スキルを証明するCertifiedに挑戦出来ます。

制限時間以内に合格基準以上のスコアを出せれば、HackerRankから認定証がもらえます。

総括

1日1問を解く習慣が付けば、数か月ほどで結構な実力が付きそうです。

またHackerRankでは、スキル証明以外に、プログラミングコンテストの開催も出来ます。

以上、HackerRankの紹介でした。