さて試験問題です。
内容は、壁とスペースで構成された迷路が与えられたとき、スタート地点からゴール地点に至る最短経路を求めよ、というものです。
たとえば、S:スタート G:ゴール *:壁 $:解答の経路 としたとき、
**************************
*S* * *
* * * * ************* *
* * * ************ *
* * *
************** ***********
* *
** ***********************
* * G *
* * *********** * *
* * ******* * *
* * *
**************************
という入力に対し、
**************************
*S* * $$$ *
*$* *$$*$ ************* *
*$* $$* $$$************ *
*$$$$* $$$$$ *
**************$***********
* $$$$$$$$$$$$$ *
**$***********************
* $$$$$*$$$$$$$$$$$$$$G *
* * $$$ *********** * *
* * ******* * *
* * *
**************************
という出力が来ればOK、というわけです。(ブラウザだと見づらいかもしれないのでテキストエディタ等にコピーすれば見やすくなります)
もうちょっと細かい条件としては、
●入出力はテキストデータを用いる
●一度に動けるのは上下左右のみ。斜めは不可
●最短経路が複数あるときはそのうちの1つが出力されていればOK
●入力データのバリデーション(長方形になっているか、スタート・ゴールが1つずつあるかどうか、等)は不要
●制限時間は3時間
●プログラム言語・OSは自由
です。
結局受験者は42名いましたが、出来の分布をおおまかに集計すると、
判定不能 | 無連絡で何も提出しない | 11名 |
Lv0 | ギブアップの連絡が来た | 3名 |
Lv1 | 入力を読んでメモリ上の構造に落とすまでできた | 7名 |
Lv2 | 最短性のチェックはせず、とにかく1本の到達経路を求めることまではできた | 13名 |
Lv3 | 不完全な最短性のチェックまでできた | 6名 |
Lv4 | 最短性のチェックまで正しくできた | 2名 |
でした。
なお、可能な全経路を列挙した上で最短を求める、というアルゴリズムは、マップのほとんどがスペースである場合に現実的な時間で終わらなくなってしまうのでLv3扱いです。
僕が自分でやって25分(受験者の立場だったらもうちょっとかかるだろうけど)というところで考えて、3時間あればLv2以下の人がいるなんて考えられないと思っていたのだけれどもまるで違いますね。
とくに理解できないのはLv0,1の人たちが開発現場でどんな仕事をしてるのかだな。ぶっちゃけ、3時間かけてこれということはコードを書く能力は0でしょ? なのに経歴書にはいろいろなプロジェクトにプログラマとして関わった経験があるようだし、こんな人でも何とか使わないといけない状況に置かれた彼らの上司がかわいそうでならない。
ちなみに、この問題のネタを昔提供してくれた後輩とその後やりとりをして、彼とその仲間2名もチャレンジしてくれました。
その結果は3人とも1時間前後でLv4の解答を出してくれたので、やはり結論は「ちゃんとした人材は自分でしっかり動いているので、一般の転職市場は相対的にレベルが低い」でしょう。
でもたくさんの人にリーチできるのはやはり価値があることで、Lv4の人のうち1人と来月から一緒に仕事することになりました!
最近のコメント