paizaの練習問題を解く 有向グラフの隣接行列と隣接リスト Go編
こんにちは、ナナオです。 前回に引き続き競プロを実施していきたいと思います。 今回の問題は以下です。 有向グラフの隣接行列と隣接リスト | レベルアップ問題集 | プログラミング学習サイト【paizaラーニング】 実装 これも一瞬よくわからなかったので、AIと少し壁打ちしました。 これまでは双方に関係性があることが前提でしたが、これが片方のみになるということですね。 例として、以下のような方向の場合 1 → 2 1 → 3 4 → 2 4 → 5 5 → 3 以下のような表になります。 実装としては以下のようになります。 package main import "fmt" func main(){ var n, m int fmt.Scan(&n, &m) g := make([][]int, n) for i := 0; i < n; i++ { g[i] = make([]int, n) } for i := 0; i < m; i++ { var a, b int fmt.Scan(&a, &b) g[a - 1][b - 1] = 1 // 前回からここの部分が変わっただけ } for i := 0; i < n; i++ { for j := 0; j < n; j++ { fmt.Printf("%d", g[i][j]) } fmt.Println() } for i := 0; i < n; i++ { for j := 0; j < n; j++ { if g[i][j] == 1 { fmt.Printf("%d", j) } } fmt.Println() } } 前回から変わった部分はコメントの部分だけです。 ...