반응형
Notice
Recent Posts
Recent Comments
- Today
- Total
작심삼일
[LeetCode] 1260 | Shift 2D Grid | Python 본문
728x90
반응형
문제 링크: https://leetcode.com/problems/shift-2d-grid/
문제
Given a 2D grid of size m x n and an integer k. You need to shift the grid k times.
In one shift operation:
- Element at grid[i][j] moves to grid[i][j + 1].
- Element at grid[i][n - 1] moves to grid[i + 1][0].
- Element at grid[m - 1][n - 1] moves to grid[0][0].
Return the 2D grid after applying shift operation k times.
조건
- m == grid.length
- n == grid[i].length
- 1 <= m <= 50
- 1 <= n <= 50
- -1000 <= grid[i][j] <= 1000
- 0 <= k <= 100
내 풀이
H, W를 각각 grid의 높이와 너비로 한다.
k의 값이 매우 커질 수 있읜 H*W로 나눈 나머지로 바꾼다.
2차원 배열을 1차원으로 폈을 때의 위치(h*W + w)를 이용해 k만큼 이동시킨 후, 이것을 다시 2차원으로 만든다.
코드
class Solution:
def shiftGrid(self, grid: List[List[int]], k: int) -> List[List[int]]:
H, W = len(grid), len(grid[0])
ngrid = [[0 for _ in range(W)] for _ in range(H)]
k %= (H*W)
for h in range(H):
for w in range(W):
temp = h*W + w + k
dh, dw = temp//W, temp%W
ngrid[dh%H][dw%W] = grid[h][w]
return ngrid
728x90
반응형
'스터디 > 코테' 카테고리의 다른 글
[LeetCode] 700 | Search in an Binary Search Tree | Python (0) | 2022.04.14 |
---|---|
[LeetCode] 59 | Spiral Matrix II | Python (0) | 2022.04.13 |
[LeetCode] 703 | Kth Largests Element in a Stream | Python (0) | 2022.04.08 |
[LeetCode] 1046 | Last Stone Weight | Python (0) | 2022.04.07 |
[LeetCode] 923 | 3Sum With Multiplicity | Python (0) | 2022.04.06 |
Comments