class Solution {
fun solution(n: Int): Array<IntArray> {
var answer: Array<IntArray> = arrayOf()
val spiral = ArrayList<Int>()
val direction = arrayOf(
intArrayOf(0, 1),
intArrayOf(1, 0),
intArrayOf(0, -1),
intArrayOf(-1, 0),
)
// answer 크기 설정
(0 until n).forEach { _ -> answer += IntArray(n) }
// input 4 -> (4, 3, 3, 2, 2, 1, 1)
// input 5 -> (5, 4, 4, 3, 3, 2, 2, 1, 1)
var input = n
spiral.add(input)
while (input > 1) {
input -= 1
spiral.add(input)
spiral.add(input)
}
var count = 0
var x = -1
var y = 0
(0 until spiral.size).forEach { i ->
(0 until spiral[i]).forEach { _ ->
println(i)
y += direction[i % 4][0]
x += direction[i % 4][1]
count += 1
answer[y][x] = count
}
}
return answer
}
}
빙빙 돌리는 방법을 이해하는게 어려웠다.
좋은 글이네요. 공유해주셔서 감사합니다.