문제 설명
숫자 N을 입력받으면 N x N 의 크기인 행렬로 달팽이행렬을 출력한다.
Example 1
Input: 5
Output:
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
문제풀이
var N = Int(readLine()!)!
var matrix = Array(repeating: Array(repeating: 0, count: N), count: N)
var number = 1
var col = -1
var row = 0
var trans = 1
while N > 0 {
(0..<N).forEach { _ in
col += trans
matrix[row][col] = number
number += 1
}
N -= 1
(0..<N).forEach { _ in
row += trans
matrix[row][col] = number
number += 1
}
trans *= -1
}
for row in matrix {
print(row.map({ String($0)}).joined(separator: " "))
}