paizaの練習問題を解く いびつなリバーシ対戦 Go編
こんにちは、ナナオです。 前回に引き続き競プロを実施していきたいと思います。 今回の問題は以下です。 いびつなリバーシ対戦 | レベルアップ問題集 | プログラミング学習サイト【paizaラーニング】 実装 以下のように実装しました。 n変数使ってない… package main import ( "fmt" "strconv" ) func main(){ var h, w, n, m int fmt.Scan(&h, &w, &n, &m) g := make([][]rune, h) for i := 0; i < h; i++ { var s string fmt.Scan(&s) g[i] = []rune(s) } for i := 0; i < m; i++ { var p, sy, sx int fmt.Scan(&p, &sy, &sx) pr := []rune(strconv.Itoa(p))[0] g[sy][sx] = pr for dy := -1; dy <= 1; dy++ { for dx := -1; dx <= 1; dx++ { for j := 1;; j++ { ly, lx := sy + dy * j, sx + dx * j if ly < 0 || lx < 0 || ly >= h || lx >= w || g[ly][lx] == '#' { break } if g[ly][lx] == pr { for k := j - 1; k > 0; k-- { ny, nx := sy + dy * k, sx + dx * k g[ny][nx] = pr } break } } } } } for i := 0; i < h; i++ { fmt.Println(string(g[i])) } } n、何のために使うんだ…?と思って解説コード見たら、そっちでも使ってなかったです(使わないんかい) ...