女子大生とペアプロするだけの簡単なお仕事を始めました

はじめに

こんにちは。ちきん(@mokemokechicken)です。

paizaさんがやっている POH! というイベントの第二弾が昨日から始まりました。


paizaオンラインハッカソン(略してPOH!) Vol.2

今回もとりあえずチャレンジを開始しました。

事の始まり

私個人としては、最初は

「また始まったか。こんな安い釣りに乗ってたまるか(あ、木野さんかわいい)」

的な感じで傍観しようと思ったのですが、社内の誰かが社内コミュニティで

だいにだーん(ニヤニヤ)

的な感じで煽ってきます。

「なになに、今度は女子大生とペアプロだと!? 嘘だ!そんなシチュエーションは幻想だ!」

と理性ではわかっているものの、前回結構楽しかったのであっさり始めてしまいました。
Paizaさんのシステムはすぐに実行タイムが表示されて他の人との比較もできるので、単に結構楽しいのですよ!

Pythonは本妻、Rubyは楽しい浮気相手、CoffeeScriptは友達、Scalaは憧れの人」という私なので、
とりあえず、今回もPython限定で参戦しようと思います。
今回は「Rubyを牽制しつつ、Perlに追いつく」ことが個人的な目標です。

これまでの経緯

1回目

とりあえず、提示されていたCaseが通るようになったので、1回目の投稿

あえなくCase4からタイムオーバーの42点。
女子大生に「動くは動くけど、、まあデスマるわけだ。」と呆れられる。

うむ。想定通りだ、ありがとうございます
あ、0点とか20点のコメントも後で見ておかないとな、と違う意味での興味が湧く。暇になったらやろう。

前回はPythonの起動時間として0.08秒程度かかっていたようなのですが、今回はそれがかなり低減されているようです。これなら普通に他の言語とも競えるかもしれません。別に他の言語より速い遅いは言語の良し悪しとは関係ないですが、並べられるとやっぱり気になるのでPython頑張りたいところです。

2回目

多少アルゴリズムを整理して、2回目の投稿

引き続き CASE6でタイムオーバーして71点。
こ、この位で凄いなんて思わないんだから!」とツンされる。

やはり伝統芸能って素晴らしいです。

タイム的にもうちょっとループを減らさないとダメっぽいことがわかります。
ただ、時間はかかるけどだいたい正答を返せるようになったようなので、最大サイズを含めたテストデータを10パターン程生成します。今後はこのデータを元にチューニングと正しさの検討をするようにします。こうなってくるとだいぶ作りやすくなります。

3回目

方針を転換して、別な実装にリファクタリングして、3回目の投稿

実行時間は速くなったけど、CASE6の結果が間違っている、、と。
得点はさっきと同じでした。せっかくなら同じ得点でもコメントが変わるといいのになぁとか全然関係ないことを思ったりします。

4回目

バグを修正して、4回目の投稿

今度は全てのCASEをクリア!
マジ、神!見直しちゃった。。」とお褒めの言葉を頂く。

とりあえず、無事エンディングを迎えました

これから

ここからはExtraステージです。

今CASE7が0.44秒ですが、前回の経験的にはここから半分以下くらいには縮まるような気はします。

個人的な目標は「Rubyを牽制しつつ、Perlに追いつく」なので、
まだまだレースは始まったばかりなのでした。



Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 16275217 bytes) in /home/yumeco/www/prod/wp-includes/wp-db.php on line 1171