paizaの練習問題を解く マップの判定・縦横 Go編
こんにちは、ナナオです。 前回に引き続き競プロを実施していきたいと思います。 今回の問題は以下です。 マップの判定・縦 | レベルアップ問題集 | プログラミング学習サイト【paizaラーニング】 実装 こちらも前回の実装を応用すればできますね。 package main import "fmt" func main(){ var h, w int fmt.Scan(&h, &w) s := make([]string, h) for i := 0; i < h; i++ { fmt.Scan(&s[i]) } isWall := func(x, y int) bool { if x < 0 || x >= w || y < 0 || y >= h { return true } return s[y][x] == '#' } for y := 0; y < h; y++ { for x := 0; x < w; x++ { if isWall(x, y - 1) && isWall(x, y + 1) && isWall(x - 1, y) && isWall(x + 1, y) { fmt.Println(y, x) } } } } めでたしめでたし。