Google Code Jam 2009 1回戦敗退

恥を晒すことになりますが、どうせ興味ある人が検索すればすぐ見つかるだろうし、ここに記録を貼っておきます。

http://www.go-hero.net/jam/09/name/shiumachi

8月末ぐらいにどなたかのブログの記事にGCJの話があり、なんとなく参加してみようかなと思い立って飛び込んでみました。

2008年の問題を見て、「もしかしたらRound 1までなら解けるかも」と思い、Round 2出場を目標に挑みましたが、さすがにそんな甘くありませんでしたね。

最後の最後で自分が頼みにしていた英語のリーディング能力に足をすくわれる形となって不満が残る部分もありますが、それでもむしろこの戦いを通して自分に自信がついた気がします。

半年間のエコ隊参加により英語が読めるようになっていなければ、あるいは数学ガールを読んで数学を解く楽しみを再発見していなければ、多分予選も通らなかっただろうし、そもそも興味を持たなかったでしょう。

こうした経験・知識の積み重ねでなんとか予選を突破し、Round 1は敗退こそしたものの「後もう少し」という手ごたえを感じることができました。自分自身の成長を実感しましたね。

そしてまた、このコンテストで学んだことが他の世界で生きるのでしょう。たった2週間のこのコンテストでの経験は既に仕事の上でも効果を発揮していて、半月前に比べると明らかに設計→コーディングのスピードと正確さが向上しています。何より、私に新しいプログラミングの楽しみを教えてくれました。

もう一つうれしいことがありました。実は無理矢理会社の後輩も巻き込んじゃったのですが、彼もなんとか予選突破できたことです。そしてそのとき彼は、「やっぱり問題解けると嬉しいもんですね」と純粋に喜んでくれました。ほとんどの人が「英語が無理」とか色々理由つけてチャレンジしない中、一緒に戦って一回でも勝ち抜いて喜びを共有できた仲間がいたのはやっぱり嬉しいです(彼もRound 1で敗退しましたが)

戦いの後は一礼するもの。このコンテストを企画してくれたGoogleや、一緒にこのゲームで遊んでくれた世界中の挑戦者の皆さん、ありがとうございました。

もし来年もあるのならまたチャレンジすることにします。次は事前にしっかり準備をして、Round 3出場を目標にしましょう。


と、その前にTopCoderに飛び込んでみますかね。

自分がこういう遊びに楽しみを感じることがわかったんで、気が向いたらやってみることにします。

メモとか

  • アウトプットファイルの形式はどの問題も大体一緒。基本構造だけ作っておくのが定石。
  • インプットファイルをDLしてから数分以内にアップロードしないといけない。VM使っててSCPで転送して…なんてやってるとあっという間にタイムアップなので注意。
  • 小問1問解いて通る場合もあれば、2問解かないと上に上がれない場合もある。安全ラインなんて誰もわからない。
  • トップの人とか多分コーディングしながら考えてるんだと思う。全てのロジックを組み立てられなくても、概要は組み立てることができるので、その部分をコーディングしながらディテールを詰めて、という感じなのだろうか。いずれにせよ、立ち止まってる暇は一切ない。
  • 問題文が全て。テストインプットに頼ると(私のように)ドツボに嵌まる。時間がなくても、隅から隅まで問題文に目を通すこと。たった一ヶ所の誤読が死を招く。

以下リンク

本家

http://code.google.com/intl/ja/codejam/

  • 右上の「Practice」を選べば過去問が読める。
  • ダウンロード→提出の機能も提供しているので、自分が作ったコードが合っているかどうかも確認することができる。
  • 各問題の左メニューに答えとか他の人の解答がある。それぞれ、「Contest Analysis」「Full scoreboard」
Code Jam Language Stats

http://www.go-hero.net/jam/

  • 国別、使用言語別にデータが見れる。
  • 特に言語別データは重要。自分の使いたい言語の人の解答が抽出できる。

(また追加するかも)