Skip to content

Commit 43a359e

Browse files
committed
feat: week6 - spiral matrix
1 parent 11fba4b commit 43a359e

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

โ€Žspiral-matrix/Seoya0512.pyโ€Ž

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
'''
2+
ํ•ด๋‹น ๋ฌธ์ œ๋ฅผ ํ™•์ธํ•˜๊ณ 
3+
์ƒ๋‹จ -> ์šฐ์ธก -> ํ•˜๋‹จ -> ์ขŒ์ธก ๋ฐฉํ–ฅ์œผ๋กœ ๋‚˜์„ ํ˜•์œผ๋กœ ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์„ ์šฐ์„ ์ˆœ์œ„๋กœ ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.
4+
pop์„ ํ†ตํ•ด์„œ matrix์˜ ํ–‰๊ณผ ์—ด์„ ์ œ๊ฑฐํ•˜๋ฉด์„œ ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•ด ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.
5+
6+
์ด๋ ‡๊ฒŒ ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ์„๋•Œ pop์„ ์‚ฌ์šฉํ•˜์—ฌ ํ–‰๊ณผ ์—ด์„ ์ œ๊ฑฐํ•˜๊ธฐ ๋•Œ๋ฌธ์—
7+
๋น„์‹ผ ๊ณ„์‚ฐ ๋น„์šฉ์ด ๋ฐœ์ƒํ•˜๋Š” ๋ถ€๋ถ„์„ ๊ณ ๋ คํ•˜์ง€ ๋ชปํ–ˆ๋‹ค๋Š” ์ ์ด ์•„์‰ฝ๊ฒŒ ๋А๊ปด์ง€๋„ค์š”.
8+
9+
Time Complexity: O(mxn)
10+
- m: ํ–‰์˜ ์ˆ˜๋งŒํผ ์ ‘๊ทผ
11+
- n: ์—ด์˜ ์ˆ˜๋งŒํผ ์ ‘๊ทผ
12+
13+
Space Complexity: O(mxn)
14+
- result ๋ฆฌ์ŠคํŠธ๊ฐ€ ์ „์ฒด ์š”์†Œ๋ฅผ ์ €์žฅ
15+
'''
16+
class Solution:
17+
def spiralOrder(self, matrix: List[List[int]]) -> List[int]:
18+
result = []
19+
idx = 0 # ์ฒ˜์Œ ๊ฐ’
20+
while matrix:
21+
result += matrix.pop(idx)
22+
for i in range(len(matrix)):
23+
if matrix[i]:
24+
result.append(matrix[i].pop())
25+
26+
# ๋นˆ ํ–‰ ์ œ๊ฑฐ (์ค‘์š”!)
27+
matrix = [row for row in matrix if row]
28+
if not matrix:
29+
break
30+
31+
result += matrix.pop()[::-1]
32+
33+
for j in range(len(matrix)-1, -1, -1):
34+
if matrix[j]:
35+
result.append(matrix[j].pop(0))
36+
37+
return result

0 commit comments

Comments
ย (0)