Rotate Image

박수빈·2022년 2월 17일
0

leetcode

목록 보기
24/51


문제

  • n*n matrix
  • matrix를 90도 회전 (시계 방향) ⤵️
  • 새로 행렬 만들지 말고 해결

풀이

  • 가로로 읽어드린 다음, 뒤부터 세로로 기록
from collections import deque
class Solution:
    def rotate(self, matrix: List[List[int]]) -> None:
        """
        Do not return anything, modify matrix in-place instead.
        """
        n = len(matrix)
        q = deque()
        for i in range(n):
            for j in range(n):
                q.append(matrix[i][j])
                
                
        for col in range(n-1,-1,-1):
            for row in range(n):
                matrix[row][col] = q.popleft()

결과

아니 근데 이거 처음엔 40ms 나왔는데, 돌리니까 61, 50, 36 이렇게 계속 달라졌다 .... ㅇㅁㅇ....

라이브러리로 될 것 같아서 찾아보니까
리스트를 역순으로 바꾸고, zip을 이용해서 세로로 읽어오는 방법이 있었다..
zip을 이럴 때도 활용할 수 있구나..ㄷㄷ..

class Solution:
    def rotate(self, matrix: List[List[int]]) -> None:
        """
        Do not return anything, modify matrix in-place instead.
        """
        for ind, el in enumerate(zip(*matrix[::-1])):
            matrix[ind] = list(el)

profile
개발자가 되고 싶은 학부생의 꼼지락 기록

0개의 댓글