MUKER_DEV with iOS

[swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์ •์ˆ˜๋ฅผ ๋‚˜์„ ํ˜•์œผ๋กœ ๋ฐฐ์น˜ํ•˜๊ธฐ ๋ณธ๋ฌธ

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

[swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์ •์ˆ˜๋ฅผ ๋‚˜์„ ํ˜•์œผ๋กœ ๋ฐฐ์น˜ํ•˜๊ธฐ

MUKER 2023. 6. 8. 23:55
 

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

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

programmers.co.kr


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

func solution(_ n:Int) -> [[Int]] {
    var x = Array((0..<n))
    var y = Array((0..<n).reversed())
    var arr = Array(repeating: Array(repeating: 0, count: n), count: n)
    var count = 1
    while true {
        for i in x {
            arr[y.last!][i] = count
            count += 1
        }
        if count >= n*n { break }
        y.removeLast()
        y.reverse()

        for i in y {
            arr[i][x.last!] = count
            count += 1
        }
        x.removeLast()
        x.reverse()
    }
    return arr
}