メニューを閉じる

テクノモバイルグループ

メニューを開く

2018.04.26

その他

Rubyでホワイトボードの問題を解いてみましょう

Canadian Devです。

もう春が来ましたね。日本では入学、入社、ニュースタートの時期ですね。日本人には毎年あるもので普通だと思われるでしょうが、多くの新卒者が会社に入ることが僕にとってまた新しいことです。就職活動というのも欧米と違うんだなと感じました。欧米のIT業界の就職活動について思い出されます。

ホワイトボード

ホワイトボードの面接をご存知ですか?

欧米の多くのIT企業では面接の一部としてホワイトボードの面接があります。ホワイトボードの面接が何かというと、インタビュアーの前でホワイトボードにコードを書いて問題を解く面接です。

カナダではホワイトボード面接を受ける場合が少なくはありません。問題をその場で知ることになるので、何も準備ができなくてとても緊張します。あまりに緊張してしまうと頭が真っ白になって簡単な問題でも解けなくなります。

だから、落ち着いてホワイトボードでゆっくり自分の考え方を説明しながら問題を解いていくほうがいいとよく言われます。何より応募者がロジックの考え方をちゃんと表現できるのかを把握したいからやらせる面接なので、黙々と行うだけではよくないです。

僕はホワイトボードの問題を解いたことが数回あります。その一つの問題について書きたいと思います。

問題

下記のような英語の文章を解析して文章に出てくる単語と、回数が2つ以上だったら、単語の回数をまとめる。

It was a dark and stormy night. Suddenly, a shot rang out! A door slammed. The maid screamed. Suddenly, a pirate ship appeared on the horizon! While millions of people were starving, the king lived in luxury. Meanwhile, on a small farm in Kansas, a boy was growing up.

回答

一番分かりやすい解決法はテキストを配列に変換して再帰処理でハッシュに単語をキーで、回数をバリューで記録することでしょう。問題をRubyで解くと:

英語の文章を引数としてget_word_instancesに渡して実行すると、下記のハッシュが返ってきます。

この問題にはバリエーションが沢山あります。

  1. e」文字が入っている単語の回数を返す。
  2. 一番回数が多い3つの単語を返す。
  3. 母音数と子音数が同じな単語の回数だけ返す。

まとめ

ホワイトボードは厳しいプロセスだし、技術力が必ずしも判断できるとも限らないので、ホワイトボードの面接をしないIT企業もあります。ですが、ホワイトボードの面接はコミュニケーション力、問題解決能力、クリエイティビティなどを訓練させることではないかと思っています。


【テクノモバイルではエンジニア/デザイナーを積極採用中です!】

下記項目に1つでも当てはまる方は是非、詳細ページへ!
  • 自分でアプリを作ってみたい
  • ITで世の中にワクワクを生み出したい
  • 使いやすさ、デザインにこだわったWebサイトを開発したい

採用情報の詳細はこちら


Qangaroo(カンガルー)

  • 徹底した見やすさと優れた操作性で、テストの「見える化」を実現。
  • テストの進捗が見える。開発がスマートに進む。
  • クラウド型テスト管理ツール『Qangaroo(カンガルー)』
https://qangaroo.jp/

最近の記事

SNS共有

X CLOSE
X CLOSE
X CLOSE