|
| 1 | +class Solution: |
| 2 | + def spiralOrder(self, matrix: List[List[int]]) -> List[int]: |
| 3 | + result = [] |
| 4 | + |
| 5 | + while matrix: |
| 6 | + # 1. 맨 μ νμ ν΅μ§Έλ‘ μΆκ° |
| 7 | + result += matrix.pop(0) |
| 8 | + |
| 9 | + # 2. λλ¨Έμ§λ₯Ό 90λ λ°μκ³ νμ |
| 10 | + matrix = list(zip(*matrix))[::-1] |
| 11 | + |
| 12 | + return result |
| 13 | + |
| 14 | + |
| 15 | +""" |
| 16 | +================================================================================ |
| 17 | +νμ΄ κ³Όμ |
| 18 | +================================================================================ |
| 19 | +
|
| 20 | +[μ κ·Ό] ν μΆμΆ + νμ |
| 21 | +ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ |
| 22 | +1. μμ΄λμ΄: |
| 23 | + - 맨 μ νμ λΌμ΄λ΄κ³ |
| 24 | + - λ¨μ νλ ¬μ λ°μκ³λ‘ 90λ νμ |
| 25 | + - λ°λ³΅νλ©΄ μμ°μ€λ½κ² spiral μμκ° λ¨ |
| 26 | +
|
| 27 | +2. λμ μμ: matrix = [[1,2,3],[4,5,6],[7,8,9]] |
| 28 | +
|
| 29 | + Step 1: pop [1,2,3] β result = [1,2,3] |
| 30 | + [[4,5,6], νμ [[6,9], |
| 31 | + [7,8,9]] βββββββββ [5,8], |
| 32 | + [4,7]] |
| 33 | +
|
| 34 | + Step 2: pop [6,9] β result = [1,2,3,6,9] |
| 35 | + [[5,8], νμ [[8,7], |
| 36 | + [4,7]] βββββββββ [5,4]] |
| 37 | +
|
| 38 | + Step 3: pop [8,7] β result = [1,2,3,6,9,8,7] |
| 39 | + [[5,4]] νμ [[4], |
| 40 | + βββββββββ [5]] |
| 41 | +
|
| 42 | + Step 4: pop [4] β result = [1,2,3,6,9,8,7,4] |
| 43 | + [[5]] νμ [[5]] |
| 44 | + βββββββββ |
| 45 | +
|
| 46 | + Step 5: pop [5] β result = [1,2,3,6,9,8,7,4,5] |
| 47 | + [] β μ’
λ£ |
| 48 | +
|
| 49 | + κ²°κ³Ό: [1,2,3,6,9,8,7,4,5] |
| 50 | +
|
| 51 | +3. νμ μ리: list(zip(*matrix))[::-1] |
| 52 | + - zip(*matrix): μ΄ λ¨μλ‘ λ¬ΆκΈ° (μ μΉ) |
| 53 | + - [::-1]: λ€μ§κΈ° (λ°μκ³ νμ ) |
| 54 | +
|
| 55 | + [[4,5,6], zip(*) [(4,7), [::-1] [(6,9), |
| 56 | + [7,8,9]] βββββββββ (5,8), βββββββββ (5,8), |
| 57 | + (6,9)] (4,7)] |
| 58 | +
|
| 59 | +4. μκ°λ³΅μ‘λ: O(m Γ n) - λͺ¨λ μμ ν λ²μ© μ²λ¦¬ |
| 60 | +5. 곡κ°λ³΅μ‘λ: O(m Γ n) - νμ ν λλ§λ€ μ λ°°μ΄ μμ± |
| 61 | +""" |
0 commit comments