こんにちは、ナナオです。
前回に引き続き競プロを実施していきたいと思います。
今回の問題は以下です。
出口のない迷路 | レベルアップ問題集 | プログラミング学習サイト【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という配列を構造体に定義していました。確かにそっちの方が実態に即しているか…
ということで今回はこれで👍