1260. Shift 2D Grid

Doyeon Kim·2022년 12월 9일

코딩테스트 공부

목록 보기
149/171

https://leetcode.com/problems/shift-2d-grid/description/


M,N를 각각 grid의 높이와 너비로 한다.
k의 값이 매우 커질 수 있읜 H*W로 나눈 나머지로 바꾼다.

2차원 배열을 1차원으로 폈을 때의 위치(m*N + w)를 이용해 k만큼 이동시킨 후, 이것을 다시 2차원으로 만든다.

class Solution:
def shiftGrid(self, grid: List[List[int]], k: int) -> List[List[int]]:
M,N = len(grid), len(grid[0])
res = [[0 for _ in range(N)] for _ in range(M)]
k %= (M*N)

    for m in range(M):
        for n in range(N):
            temp = m*N + n + k
            dm, dn = temp//N, temp%N
            res[dm%M][dn%N]= grid[m][n]
    return res
profile
성장하고 도전하는 개발자. 프로그래밍 좋아하세요?

0개의 댓글