hackerrank.com でベーシックアルゴリズムを(英語で)復習する

introduction

昨年、RSSだか社内チャットだかどこだったか忘れたが、とある海外エンジニアのブログを読んだ。 job interview をどう突破したのかが書かれていて、非常に刺激になった。

そこに、面接対策として、hackerrank.comで基本的なアルゴリズムを復習した〜ということが書かれていた。 ああ、binary treeや、sort、search アルゴリズムは当然学生時代に散々勉強したけど、実務でこれらを使うことは無かったし すぐ説明しろと言われてもできないなあ(英語面接ならなおさら)と気づいた。

というわけで昨年、業務後にhacker rankのアルゴリズムコースの問題をひたすら解いていた。

これからアルゴリズムを勉強、あるいは復習してみたい(英語で)という人は参考にしてみるといいかもしれない。

Hecker Rank とは?

www.hackerrank.com HackerRank - Wikipedia

how to begin

  1. サイトにアクセスし、まず sign up する。無料なので安心して欲しい。
  2. 登録できたら、practice へ行く。いきなりアルゴリズムコースへ行ってもいいが、まずはどういうものか慣れるためにもTutorialをやってみるといいだろう。 30 days of code は、1問5分以内で終わるのでコツを掴むのにおすすめ。 https://www.hackerrank.com/domains/tutorials/30-days-of-code

  3. tutorialを終えたら、algorithmsへ。 https://www.hackerrank.com/domains/algorithms Subdomains にアルゴリズムのカテゴリがわけられているので、たとえば探索アルゴリズムをやりたい場合は、'Search' カテゴリへ行けばいい。

問題の選び方

各問題には、Success Rate、Difficultyと言うものが表示されている。Success Rate、Difficultyを見て問題の難易度を先にチェックしてから挑戦しよう。Mediumでも結構難しい問題は多い。とりえあずEasyから始めることをおすすめする。さらに言えばEasyの中でもSuccess Rateの高い問題は易しい。英語に慣れていなければEasy問題の問題文を読むだけでも割りと大変かもしれない。

問題を解く

セレクトボックス内にある言語であれば、自由に選択できるので、好きな言語を選択できる。 問題がどうしても解けない場合、問題の Discussions へ行くといい。過去のログをみればEasy, Medium問題は大抵は解決する。たまに解答コードが直に貼られてあったりする。

バッジがもらえる

いっぱい問題を解くとポイントが溜まり、バッジを貰える。 何の役に立つのかはわからない。

Algorithms badge lv3 f:id:tic40:20170128183545p:plain

関連書籍。去年読んだ。買っておいて損はないという感じ。