
😎풀이
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
};