Google Developer Day 2010 に行ってきた
今日は Google Developer Day 2010 に行ってきました。 DevQuiz といい、開発者イベントでの力の入れようはさすが Google という感じでした。それにしてもものすごい人出でびびりました。
DevQuiz は普通に Super Hackers 枠で通過しました。すべての問題に回答はしましたが、パックマンの解の自動探索まではしてません。しょぼいのですが採点結果をさらしておきます。

解の探索アルゴリズムなどに興味があったのですが、ライトニングトークの後の DevQuiz 講評で、最高得点の人は手動で解いてたという話を聞いてちとがっくりきました。 最適解は問題作った人にもわからん とのこと。
鵜飼先生 のオフィスアワーでは直々に Go 言語 の手ほどきを受け、DevQuiz のお題であるしりとりの勝ち手順の探索をするプログラムを書こうとしたのですが、やっぱり時間が足りませんでした。 さきほど 仕様 を見つつ、どうやら動くものを書き上げました。
このコードは The Go Playground でコピペしてボタンを押すだけで実行できます。私もインストールひとつしていません。ありがとう Google。
package main
import "fmt"
var DIC = []string{
"ahatyjeje",
"ecibo",
"ezrjg",
"eemtvf",
"evnaqcfzb",
"oihwxg",
"owdnyjf",
"gvnngklwz",
"gtcidqh",
"gkeub",
"gxhot",
"zfuvedkpqh",
"zijlnnwqzxp",
"zhllfyap",
"hdpjvswd",
"hpkvnsevy",
"hypclovj",
"ddhinzsmy",
"daxbtr",
"yonfzuyygbs",
"yockptdq",
"yesviijzuxl",
"shalq",
"sbmiygnv",
"szdgjmqwv",
"smbtbxwczk",
"qhqmw",
"qepotebdk",
"wjlqsioga",
"fwxhwsc",
"cptvdtqyp",
"porrznbu",
"uaxfjr",
"rjvgi",
"rcfdrqmkfj",
"inancs",
"izzneqcv",
"vwxtzqhbdsm",
"msolien",
"ndqxx",
"bbqst",
"tyjlp",
"juvfhxk",
"kurlll",
"lsevjlphaa",
"ahwvwx",
}
func search(dic []string, choices []string) {
leaf := true
next := make([]string, len(choices)+1)
copy(next, choices)
s := choices[len(choices)-1]
t := s[len(s)-1]
L:
for _, u := range dic {
for _, v := range choices { if u == v { continue L } }
if t != u[0] { continue }
next[len(choices)] = u
search(dic, next)
leaf = false
}
if (leaf && len(choices) % 2 == 0) {
fmt.Printf("%#v\n", choices)
}
}
func main() {
search(DIC, []string{DIC[0]})
}
Typo というか CodeRay は Go の syntax highlightening にはまだ未対応ないんですね。残念。
とりあえず基本的な文法やデータ型、各種リテラルの書き方はわかりましたので、あとは他人のコードを読んで学習して、もっとまともなコードが書けるようにしたいものです。
2010/09/29 01:24:00 JST