こんにちは、ナナオです。
前回に引き続き競プロを実施していきたいと思います。
今回の問題は以下です。
いびつなリバーシ対戦 | レベルアップ問題集 | プログラミング学習サイト【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、何のために使うんだ…?と思って解説コード見たら、そっちでも使ってなかったです(使わないんかい)
まぁいいでしょう。
ではまた👍