MUKER_DEV with iOS

[swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์ฟผ๋“œ์••์ถ• ํ›„ ๊ฐœ์ˆ˜ ์„ธ๊ธฐ ๋ณธ๋ฌธ

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

[swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์ฟผ๋“œ์••์ถ• ํ›„ ๊ฐœ์ˆ˜ ์„ธ๊ธฐ

MUKER 2023. 4. 28. 14:43
 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr


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

func solution(_ arr:[[Int]]) -> [Int] {
    var result = [0,0]
    
    func divide(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 half = size / 2
                    
                    for ii in 0..<2 {
                        for jj in 0..<2 {
                            divide(size: half, y: y+ii*half, x: x+jj*half)
                        }
                    }
                    
                    return
                }
            }
        }
        result[n] += 1
    }
    divide(size: arr.count, y: 0, x: 0)
    return result
}

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

๋ถ„ํ• ์ •๋ณต