
😎풀이
flatten: mat를 평탄화 함
- 요소와 재구성 하고자 하는 행(
row), 열(col)이 맞지 않다면 원래 행열(mat) 반환
reshape: 재구성 된 행열
pointer: flatten 요소 중 현재 행열을 구성할 요소
r과 c 만큼 행열 순회하며 각 요소 입력
r과 c에 맞추어 새롭게 구성된 행렬(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
};