알고리즘
[LeetCode/Algorithm] 1260. Shift 2D Grid
개발코딩기록
2026. 8. 9. 22:36
행렬 grid(mxn) 이 주어질 때 k 칸 만큼 오른쪽으로 순환 right shift한 행렬을 return 하기
문제 해결 아이디어
- Grid 배열을 flat() 으로 펼쳐서, slice로 _k 칸 밀어준다.
- 그냥 k 갖다 썼다가 맞왜틀 당함. k가 전체 배열 m x n 값보다 큰 경우였음. const _k = k % mn 으로 예방한다
/**
* @param {number[][]} grid
* @param {number} k
* @return {number[][]}
*/
var shiftGrid = function(grid, k) {
const m = grid.length;
const n = grid[0].length;
const mn = m * n;
const flatten = grid.flat()
const _k = k % mn;
const raw = [...flatten.slice(mn-_k, mn), ...flatten.slice(0, mn-_k)]
const out = [];
for (let i = 0; i < m ; i++) {
const arr = [];
for (let j = 0; j < n; j++) {
arr.push(raw[i * n + j])
}
out.push(arr);
};
return out;
};
