본문 바로가기
카테고리 없음

[LeetCode] Spiral Matrix

by 컴돈AI 2024. 4. 8.

목차

    문제

    문제 풀이

    풀이 1 : Rotate후 첫 행씩 추가해주기

    • Rotate후 첫 행을 answer에 계속해서 넣어줍니다.
    • 코드
      • class Solution:
            def rotate270(self,arr):
                return [item for item in zip(*arr)][::-1]
            
            def spiralOrder(self, matrix: List[List[int]]) -> List[int]:
                answer = []
                
                while matrix:
                    answer+=matrix[0]
                    matrix = self.rotate270(matrix[1:])
                    
                return answer
    • 시간복잡도
      • O(MN)

    알게 된 내용

      • 행렬 Transpose
        • example_matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
          
          
          def transpose(arr):
              return [row for row in zip(*arr)]
          
          
          print(transpose(example_matrix))
      • 행렬 Rotate
        • example_matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
          
          
          def rotate90(arr):
              return [row[::-1] for row in zip(*arr)]
          
          
          def rotate270(arr):
              return [row for row in zip(*arr)][::-1]

    출처