๐Ÿ“ ์ฝ”ํ…Œ/BOJ

[Swift] ๋ฐฑ์ค€1018

JerryiOS 2023. 3. 22. 15:26

let mn = readLine()!.split(separator: " ").map{Int($0)!}
let m = mn[0]
let n = mn[1]

var board = [[String]]()
for _ in 0..<m {
    board.append(readLine()!.map{String($0)})
}

var minCount = m * n  // ๋ชจ๋“  ์นธ์„ ๋‹ค์‹œ ์น ํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ๋ฅผ ์ดˆ๊ธฐ๊ฐ’์œผ๋กœ ์„ค์ •

for i in 0..<m-7 {
    for j in 0..<n-7 {
        var count1 = 0  // ๋งจ ์™ผ์ชฝ ์œ„ ์นธ์ด ํฐ์ƒ‰์ธ ๊ฒฝ์šฐ
        var count2 = 0  // ๋งจ ์™ผ์ชฝ ์œ„ ์นธ์ด ๊ฒ€์€์ƒ‰์ธ ๊ฒฝ์šฐ
        for x in i..<i+8 {
            for y in j..<j+8 {
                if (x + y) % 2 == 0 {
                    if board[x][y] == "B" {
                        count1 += 1
                    } else {
                        count2 += 1
                    }
                } else {
                    if board[x][y] == "W" {
                        count1 += 1
                    } else {
                        count2 += 1
                    }
                }
            }
        }
        minCount = min(minCount, count1, count2)
    }
}

print(minCount)

1. ์ด์ค‘ ๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  ์œ„์น˜์—์„œ 8x8 ์ฒด์ŠคํŒ์„ ๋งŒ๋“ค์–ด ๋น„๊ตํ•œ๋‹ค.

2. ํฐ์ƒ‰์ธ ๊ฒฝ์šฐ์™€ ๊ฒ€์€์ƒ‰์ธ ๊ฒฝ์šฐ๋ฅผ ๊ณ ๋ คํ•ด์ค€๋‹ค. W, S

3. (0,0)๋ถ€ํ„ฐ 8x8 ์ฒด์ŠคํŒ์„ ๋งŒ๋“ค์–ด ์ •์‚ฌ๊ฐํ˜•์„ ์น ํ•ด์•ผํ•˜๋Š”์ง€ ํ™•์ธํ•œ๋‹ค. 

4. ์ •์‚ฌ๊ฐํ˜•์„ ์น ํ•˜๋Š” ๊ธฐ์ค€์€ ์ขŒํ‘œ๊ณ„์˜ ํ•ฉ์ด ์ง์ˆ˜์ผ ๊ฒฝ์šฐ์™€ ํ™€์ˆ˜์ผ ๊ฒฝ์šฐ์— ๋”ฐ๋ผ ๋‹ค๋ฅด๋‹ค.

5. ์ตœ์†Œ๊ฐ’์„ ๊ณ„์† ์—…๋ฐ์ดํŠธํ•ด์„œ ์ œ์ผ ์ž‘์€ ๊ฐ’์„ ์ถœ๋ ฅํ•˜๋„๋กํ•œ๋‹ค.

๋ฐ˜์‘ํ˜•