😎풀이

  1. flatten: mat를 평탄화 함
  2. 요소와 재구성 하고자 하는 행(row), 열(col)이 맞지 않다면 원래 행열(mat) 반환
  3. reshape: 재구성 된 행열
  4. pointer: flatten 요소 중 현재 행열을 구성할 요소
  5. rc 만큼 행열 순회하며 각 요소 입력
  6. rc에 맞추어 새롭게 구성된 행렬(reshape) 반환
function matrixReshape(mat: number[][], r: number, c: number): number[][] {
    const flatten = mat.flat(Infinity)
    if(flatten.length !== r * c) return mat
    const reshape = []
    let pointer = 0
    for(let i = 0; i < r; i++) {
        const row = []
        for(let j = 0; j < c; j++) {
            row.push(flatten[pointer++])
        }
        reshape.push(row)
    }
  return reshape  
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글