Leetcode Python - 48. Rotate Image

Leetcode #48 - Rotate Image

이제 blind 75 leetcode를 풀어보겠습니다. https://leetcode.com/discuss/interview-question/460599/Blind-75-LeetCode-Questions

리트코드의 문제 48 ‘Rotate Image’을 파이썬으로 풀어 보도록 하겠습니다. 포인트는 첫 줄에 각 값들을 90도씩 회전된 곳으로 이동을 총 4번씩 시켜주는 것입니다.

전체 코드는 아래와 같습니다.

class Solution:
    def rotate(self, matrix):
        if len(matrix) == 1:
            return matrix
        
        n = len(matrix)
        col_start = 0
        col_end = n-1
        row_start = 0
        row_end = n-1
        
        while row_start < row_end and col_start < col_end:
            for i in range(0, col_end-col_start):
                tmpFirst = matrix[row_start][col_start+i]
                tmpSecond = matrix[row_start+i][col_end]
                tmpThird = matrix[row_end][col_end-i]
                tmpFourth = matrix[row_end-i][col_start]
                
                matrix[row_start][col_start+i] = tmpFourth
                matrix[row_start+i][col_end] = tmpFirst
                matrix[row_end][col_end-i] = tmpSecond
                matrix[row_end-i][col_start] = tmpThird
                
            row_start += 1
            row_end -= 1
            col_start += 1
            col_end -= 1

시간복잡도는

  • O(n^2) : matrix 모든 요소를 방문

공간복잡도는

  • O(1) : 상수 변수들 생성