😎풀이

  1. 행의 높이를 m으로 정의
  2. 열의 너비를 n으로 정의
  3. grid를 평탄화
    3-1. grid를 순회하며 마지막 요소를 배열의 첫 요소로 이동
  4. m * n 크기의 2차원 행렬 matrix 정의
    4-1. matrix를 순회하며 각 요소를 flatten의 요소로 할당
  5. matrix 반환
function shiftGrid(grid: number[][], k: number): number[][] {
    const m = grid.length
    const n = grid[0].length
    const flatten = grid.flat(2)
    for(let i = 0; i < k % (m * n); i++) flatten.unshift(flatten.pop())
    const matrix = Array.from({ length: m }, () => Array(n).fill(0))
    for(let row = 0; row < m; row++) {
        for(let col = 0; col < n; col++) {
            matrix[row][col] = flatten[row * n + col]
        }
    }
    return matrix
}
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글