はじめに
さて、今回はHackerRankについて紹介したいと思います。
HackerRankとは求人サイトの一種で、問題を解くことで得点を稼ぐことができ、そのスコアでランキングを競うことのできるサイトです。
同様のサービスではpaizaも有名かと思います。
( 少し前はCodeIQといったサービスもありましたね。 )
HackerRankの特徴は、
- 全世界のエンジニア対象(=ランキングは世界ランキングになる)
- 問題文は全て英語で書かれている
- 問題種別は
Algorithms
,Data Structures
,Mathematics
が用意されている
といったところでしょうか。
どんな問題なのか
オンラインでのプログラミングテストでありがちなのが、その独特な Input
の扱い方かと思います。
例えば、複数 Input
がある場合、
1回目の readLine()
の呼び出しが1つ目の Input
に当たり、
2回目の readLine()
の呼び出しが2つ目の Input
に当たるといった感じですね。
HackerRankでも、初級の問題ではそういった部分を書かせることがあるのですが、
ほとんどの問題が『肝心のロジックをどのように書いているのかに終始できる問題の出し方になっています。
では、実際に一例を見てみましょう。
こちらのApple and Orangeは Algorithms
に区分けされた Easy
問題です。
問題を見てみると、「何やら既にたくさんのコードが書かれているな」ということに気づくでしょう。
上図のように中身のないメソッドが用意されており、その中のロジックを書くことが『問題に回答する』ということになります。
Easy
問題であっても、割と長々と英語で問題が解説されているため、身構えてしまう人もいるかもしれませんが、
最後まで読み切ってしまえば、問題の難易度と英文の長さが比例しているわけではないということがわかるでしょう。
参考までに上記の問題を筆者が解いたときの回答を記載しておきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
このように、コメント文を日本語で書いても問題はありません。
因みに、一度解いて提出した回答内容はいつでも Submissions
タブから確認することができます。
まとめ
さて、今回はHackerRankについて簡単に紹介しました。
初めは『プロダクトの開発の方がよっぽど面白いんじゃないか』と思っていたのですが、
案外、解き始めて見ると楽しいし、勉強になるしで良い遊び場を見つけたような気持ちになりました。
少しずつではありますが、筆者も Easy
問題から解き始めています。
そして GitHubに、その軌跡を残し始めることにしました。
「プロダクト開発で、『○○なロジックをキレイに書くためには…』なんて考えた時に思い出すかもしれないな」なんて思ったり笑
と言ったところで本日はここまで。