MUKER_DEV with iOS

[swift] ๋ฐฑ์ค€ - 2630๋ฒˆ: ์ƒ‰์ข…์ด ๋งŒ๋“ค๊ธฐ ๋ณธ๋ฌธ

๐Ÿค– ์•Œ๊ณ ๋ฆฌ์ฆ˜/BAEKJOON

[swift] ๋ฐฑ์ค€ - 2630๋ฒˆ: ์ƒ‰์ข…์ด ๋งŒ๋“ค๊ธฐ

MUKER 2023. 4. 14. 16:09
 

2630๋ฒˆ: ์ƒ‰์ข…์ด ๋งŒ๋“ค๊ธฐ

์ฒซ์งธ ์ค„์—๋Š” ์ „์ฒด ์ข…์ด์˜ ํ•œ ๋ณ€์˜ ๊ธธ์ด N์ด ์ฃผ์–ด์ ธ ์žˆ๋‹ค. N์€ 2, 4, 8, 16, 32, 64, 128 ์ค‘ ํ•˜๋‚˜์ด๋‹ค. ์ƒ‰์ข…์ด์˜ ๊ฐ ๊ฐ€๋กœ์ค„์˜ ์ •์‚ฌ๊ฐํ˜•์นธ๋“ค์˜ ์ƒ‰์ด ์œ—์ค„๋ถ€ํ„ฐ ์ฐจ๋ก€๋กœ ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ ๋งˆ์ง€๋ง‰ ์ค„๊นŒ์ง€ ์ฃผ์–ด์ง„๋‹ค.

www.acmicpc.net


์„ฑ๊ณต ํ’€์ด

let N = Int(readLine()!)!
var cnt = [0,0]
var arr = [[Int]]()
for _ in 0..<N {
    arr.append(readLine()!.split(separator: " ").map { Int($0)! })
}
func sol(size: Int, y: Int, x: Int) {
    let n = arr[y][x]
    for i in y..<y+size {
        for j in x..<x+size {
            if arr[i][j] != n {
                let new = size / 2
                for ii in 0..<2 {
                    for jj in 0..<2 {
                        sol(size: new, y: y+ii*new, x: x+jj*new)
                    }
                }
                return
            }
        }
    }
    cnt[n] += 1
}
sol(size: N, y: 0, x: 0)
cnt.forEach { print($0) }

ํ’€์ด ํ‚ค์›Œ๋“œ

๋ถ„ํ•  ์ •๋ณต
[swift] ๋ฐฑ์ค€ - 1780๋ฒˆ: ์ข…์ด์˜ ๊ฐœ์ˆ˜ (tistory.com)
ํ•ด๋‹น ๋ฌธ์ œ์™€ ์™„์ „ ๊ฐ™์€ ๋กœ์ง์œผ๋กœ ํ’€ ์ˆ˜ ์žˆ๋‹ค.