こんにちは、ksr_cyclです。皆さんはデータ構造とアルゴリズムは好きですか?
私は普通です。好きになれるようにHackerRankで勉強をします。
HackerRankとは
多くのプログラミング問題に挑戦出来るサービスです。
また、スタートアップアクセラレーターである、Y-Combinatorが受け入れた最初のインド企業としても知られています。
使用できるプログラミング言語は、C, C++, Java, Ruby, Python, JavaScript, Rust 等、多くの選択肢があります。
問題は、
・アルゴリズム
・データ構造
・数学
・データベース
・正規表現
等、数多くのカテゴリから出題されており、企業のコーディングテスト対策、またコーディングテストのプラットホームとしても使われています。各問題に対して、ディスカッションスレッドが用意されており、多くのユーザーと問題に対しての議論ができます。
はじめかた
HackerRankのアカウント作成をするにあたって、サインアップします。 右の「For Job Seekers」を選択します。
アカウント作成が終わったら、今回は初級の問題を解いてみたいと思います。「Algorithms」を選択します。
問題を解いてみる
先頭に出ている「Solve Me First」を解いてみます。
クリックすると、このような画面が出てきます。
問題を読む
英文で書かれた問題文を読みます。この問題は簡単です。
問題文がなかなか理解が出来ない場合は、問題文の下にある
Sample Input
とSample Output
とExplanation
をじっくり読みます。
なんとなくでも問題のイメージが出来てくるはずです。
問題を解く
次に問題を解いていくので、使用する言語を選びます。私はPython3を選びます。
このように、すでに関数が書かれており、その中にソリューションを書いていきます。
この問題では、すでにヒントが書かれてますね。
問題が解けたら、下のRun Code
をクリックして、テストします。
動作は確認できました。
コードを提出する
問題を解けたら、コードを提出します。
Run Code
の隣にある、Submit Code
をクリックして、提出します。
再度、用意されたテストケースを通過したら、問題クリアです。
問題の難易度が上がるにつれて、この部分が非常に難しくなってきます。
この問題はクリアです。
もし問題を解くのに詰まったら、Disscussionsから質問もできます。
また、問題を解き終わったらLeaderBoardから自分の順位が確認出来ます。
その他
問題を解いていくと、ポイントが加算されていき、一定の量に達するとバッチがもらえます。
またこういった問題の他に、スキルを証明するCertifiedに挑戦出来ます。
制限時間以内に合格基準以上のスコアを出せれば、HackerRankから認定証がもらえます。
総括
1日1問を解く習慣が付けば、数か月ほどで結構な実力が付きそうです。
またHackerRankでは、スキル証明以外に、プログラミングコンテストの開催も出来ます。
以上、HackerRankの紹介でした。