문제
풀이
- 직접 배열을 조작하기 어려워 다른 방법을 생각해봄.
- 문제의 규칙을 보니 matrix를 일자로 쭉 나열 후, 제일 뒤 요소를 앞으로 추가하면 됨.
- 주어진 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