Google Code Jam Practice

Arena で去年の問題を使って練習できるので、500点の Router 問題を懲りずに C++ で解いた。今回も事前準備なし。うが、また文字列操作かよ...。

vector split(string str, string delimiter)

を作成する。時間が無駄に消えて...

Test Driven Development で Objective に完成。

171点。おそい。わかっていたけど、おそすぎる。Packet クラスやら Range クラスやら作ってちゃダメだ...。

コード量が少なくなるようにガシガシ詰め込まないと無理。TDD なんてやってちゃだめ。今の開発スタイル全否定。くぅ。最近、ロジックを一直線にくみ上げていくなんてことしてないから、結構カンを取り戻すのに苦労しそう。そういうスタイルでコーディングすると恐怖感を覚えるのは良いことなんだけど...。

とりあえず文字列操作関数を俺ライブラリとして持つか...。split, replace, reverse, find_nth, toString(int), toInteger(string) そんな感じ? もちろんコピペして速攻使えるように C の関数で...。他の人のコードでも見て考えるか。

を、数少ない C++ coder を見つけた。...なんかノリが 1行プログラミングコンテストなんですけど...。ループを

#define REP(i, n) for(__typeof(n) i=0; i<(n); i++)

でガシガシ省略したり...。常識っすか。このあたりのテクニックは Top Coder のランキング戦にでも出ればわかるのかな。