We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent adcc891 commit 9d0ba97Copy full SHA for 9d0ba97
spiral-matrix/uraflower.js
@@ -0,0 +1,33 @@
1
+/**
2
+ * 주어진 행렬을 나선형(우-하-좌-상)으로 순회한 결과를 반환하는 함수
3
+ * @param {number[][]} matrix
4
+ * @return {number[]}
5
+ */
6
+const spiralOrder = function (matrix) {
7
+ const rows = matrix.length;
8
+ const cols = matrix[0].length;
9
+ let r = 0;
10
+ let c = 0;
11
+ let dr = 0; // 0, 1, 0, -1
12
+ let dc = 1; // 1, 0, -1, 0
13
+
14
+ const output = [];
15
16
+ for (let i = 0; i < rows * cols; i++) {
17
+ output.push(matrix[r][c]);
18
+ matrix[r][c] = null;
19
20
+ // 방향을 전환해야 하는 경우
21
+ if (!(0 <= r + dr && r + dr < rows && 0 <= c + dc && c + dc < cols) || matrix[r + dr][c + dc] === null) {
22
+ [dr, dc] = [dc, -dr];
23
+ }
24
25
+ r += dr;
26
+ c += dc;
27
28
29
+ return output;
30
+};
31
32
+// 시간복잡도: O(r * c)
33
+// 공간복잡도: O(1)
0 commit comments