Skip to content

Commit 353a927

Browse files
committed
삼각 달팽이
1 parent 72f5719 commit 353a927

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

Programmers/삼각 달팽이.swift

+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import Foundation
2+
3+
func solution(_ n:Int) -> [Int] {
4+
var map = Array(repeating: Array(repeating: 0, count: n+1), count: n+1)
5+
var dy = [1, 0, -1]
6+
var dx = [0, 1, -1]
7+
var dPointer = 0
8+
var y = -1
9+
var x = 0
10+
var nCount = n
11+
var num = 1
12+
13+
// 달팽이 채우기
14+
while nCount >= 1 {
15+
for i in 0..<nCount {
16+
y += dy[dPointer]
17+
x += dx[dPointer]
18+
map[y][x] = num
19+
num += 1
20+
}
21+
nCount -= 1
22+
dPointer = (dPointer + 1) % 3
23+
}
24+
25+
// 새로운 배열 만들기
26+
var answer: [Int] = []
27+
for i in 0..<n {
28+
for j in 0..<n {
29+
if map[i][j] != 0 {
30+
answer.append(map[i][j])
31+
}
32+
}
33+
}
34+
35+
return answer
36+
}

0 commit comments

Comments
 (0)