paizaの練習問題を解く 出口のない迷路 Go編
こんにちは、ナナオです。 前回に引き続き競プロを実施していきたいと思います。 今回の問題は以下です。 出口のない迷路 | レベルアップ問題集 | プログラミング学習サイト【paizaラーニング】 実装 実装は以下の通りです。 package main import "fmt" type Location struct { Str string First int Second int } func main(){ var n, k, s int fmt.Scan(&n, &k, &s) var locs []Location for i := 0; i < n; i++ { var fst, scd int var str string fmt.Scan(&str, &fst, &scd) locs = append(locs, Location { Str: str, First: fst, Second: scd, }) } r := locs[s - 1].Str for i := 0; i < k; i++ { var m int fmt.Scan(&m) if m == 1 { s = locs[s - 1].First } else { s = locs[s - 1].Second } r += locs[s - 1].Str } fmt.Println(r) } 構造体で1番目、2番目の地点管理を行いました。たぶんこういうことでしょう。 解説を見たらfirst, secondという定義ではなく、roadという配列を構造体に定義していました。確かにそっちの方が実態に即しているか… ということで今回はこれで👍