2011年9月14日水曜日

【Android】DevQuiz 2011 参戦

今年こそは!!

という意気込みがあったわけでもないのですが、去年もなんか仕事か何かで参加できず仕舞いだったので今年は時間取れそうだし、、、

すいません。すっごい参加したかったです。

TLとか楽しそうでしたし。

で、自分の場合、特に著名なアプリを作ってるわけでもなく、優先招待枠なんてのは無理。
んじゃぁ、ダメモトでDevQuizクリアして参加するしかないかー、ということで。

選択したのは
・WebGame
・Android
の2科目。



感想は、、、
多分、参加されたエンジニアのみなさんが思ったと思うのですが、、、

簡単すぎる。
いや、マジで。
2科目併せて実働半日って、、、やばいだろ、これ絶対チャレンジ問題で足切りだろ。

なんて思ってたら。

残り数日の段階で足切りが100点付近。(選択科目とウォームアップが満点で100点)

やっぱりなー、やばいなー、、、

なんてやってたわけです。

で、ずいぶん昔、20年くらい前の話ですが、趣味でゲームをちょいちょい作ってたとき、探索アルゴリズムでいくつかあったのを思い出しましてね。幅優先探索と深さ優先探索。
じゃぁ、これを併せて可変にしてしまえば近い答えくらいは出るだろう。
なんて軽い気持ちでおりまして。ええ。おじさんの悪い癖ですよ。中年の余裕っていうか。

思いのほか、回答が進まない。

これには焦った。

で、とった方法。

ベースのソルバは反復深度優先探索。下限値の計算はマンハッタンディスタンス。
あとは各種判定をインラインで書いたり、register指定したりという感じ。
特に気合の入った高速化とか超ひねったアルゴリズムとかにはできませんでした。サンプル通りというか、教科書通りの計算だけです。(そんな頭もないですw)

計算量の少ない小さいマスからgrepで抜き出して、計算させて、エクセルに張り付けて、回答用のTextFileを作るマクロを組んで、、、という、サラリーマンプログラマ全開の泥臭ーいことをやりました。

実際、締切り当日の朝8時の段階では10点行くか行かないかくらい。
ギリギリ、9時30分くらいに20.5点まで伸ばしてF/Aにしました。

どうやって伸ばしたか。

残りの挑戦すらしてないフィールドの大きな問題だけを集めて、足切りを早くして早めに解けるものだけを解いて解答にくっつける。
というここでも泥臭いチャレンジをしました。

で、どうにかこうにか2000問の解答に至ったわけです。
#Giveupも含めて投入した問題数は3500問でした。

今回思ったのは、
やっぱりこういうチャレンジは必要ですごい頭使ったし工夫も「それなりに」したし、なによりたくさんチャレンジ的なコードを書いた。
これってこの年齢になるとすごい久々だったりします。

そんな気持ちを振り返えらせてもらって、そして、また勉強する機会を貰えて、とても良い時間を過ごしました。

まだ、参加できるかどうかはわかりませんが。おっさんの夏がひとつ終わりました。
TLでハッパをかけてくれたクラスタのみなさん。ありがとう。

0 件のコメント :

コメントを投稿