こんにちは、ナナオです。

前回に引き続き競プロを実施していきたいと思います。

今回の問題は以下です。

マップの判定・縦 | レベルアップ問題集 | プログラミング学習サイト【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 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) {
                fmt.Println(y, x)
            }
        }
    }
}

簡単に実装できました。