Skip to content

Commit 116b16f

Browse files
committed
spiral-matrix solved
1 parent 938990f commit 116b16f

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

spiral-matrix/hsskey.js

+41
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
/**
2+
* @param {number[][]} matrix
3+
* @return {number[]}
4+
*/
5+
var spiralOrder = function(matrix) {
6+
if (matrix.length === 0) return [];
7+
8+
const res = [];
9+
let left = 0, right = matrix[0].length;
10+
let top = 0, bottom = matrix.length;
11+
12+
while (left < right && top < bottom) {
13+
// 상단 행 왼쪽 → 오른쪽
14+
for (let i = left; i < right; i++) {
15+
res.push(matrix[top][i]);
16+
}
17+
top += 1;
18+
19+
// 오른쪽 열 위 → 아래
20+
for (let i = top; i < bottom; i++) {
21+
res.push(matrix[i][right - 1]);
22+
}
23+
right -= 1;
24+
25+
if (!(left < right && top < bottom)) break;
26+
27+
// 하단 행 오른쪽 → 왼쪽
28+
for (let i = right - 1; i >= left; i--) {
29+
res.push(matrix[bottom - 1][i]);
30+
}
31+
bottom -= 1;
32+
33+
// 왼쪽 열 아래 → 위
34+
for (let i = bottom - 1; i >= top; i--) {
35+
res.push(matrix[i][left]);
36+
}
37+
left += 1;
38+
}
39+
40+
return res;
41+
};

0 commit comments

Comments
 (0)