paizaの練習問題を解く りんご拾い(情報を持ちながらの移動) Go編
こんにちは、ナナオです。 前回に引き続き競プロを実施していきたいと思います。 今回の問題は以下です。 りんご拾い(情報を持ちながらの移動) | レベルアップ問題集 | プログラミング学習サイト【paizaラーニング】 実装 以下のように実装しました。 package main import "fmt" func main(){ var n int fmt.Scan(&n) g := make([][]int, n) for i := 0; i < n; i++ { g[i] = make([]int, n) } for i := 1; i < n; i++ { var a, b int fmt.Scan(&a, &b) g[a - 1][b - 1] = 1 g[b - 1][a - 1] = 1 } for i := 0; i < n; i++ { var k int fmt.Scan(&k) for j := 0; j < n; j++ { if g[i][j] == 1 { g[i][j] = k } } } index := 0 sum := 0 for i := 0; i < n; i++ { for j := 0; j < n; j++ { if g[index][j] > 0 { sum += g[index][j] if i < n - 2 { g[j][index] = 0 } index = j break } } fmt.Println(sum) } } 前回のコードを少し弄れば解決しましたね。 ...