[LeetCode] 1260. Shift 2D Grid

원숭2·2022년 4월 11일
0

문제

풀이

  1. 직접 배열을 조작하기 어려워 다른 방법을 생각해봄.
  2. 문제의 규칙을 보니 matrix를 일자로 쭉 나열 후, 제일 뒤 요소를 앞으로 추가하면 됨.
  3. 주어진 matrix를 하나의 array로 변환 후, deque를 이용함.

코드

from collections import deque

class Solution:
    def shiftGrid(self, grid: List[List[int]], k: int) -> List[List[int]]:
        m = len(grid)
        n = len(grid[0])
        arr = []
        for i in range(len(grid)) :
            for j in range(len(grid[i])) :
                arr.append(grid[i][j])
        arr = deque(arr)
        
        for _ in range(k) :
            arr.appendleft(arr.pop())
        
        arr = list(arr)
        res = []
        
        for i in range(0, len(arr), n) :
            tmp = []
            for j in range(i, i+n) :
                tmp.append(arr[j])
            res.append(tmp)
        return res

0개의 댓글