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 のランキング戦にでも出ればわかるのかな。