기존 행렬에 있는 값을 순서대로 큐에 넣어서 r * c 로 만든 새로운 행렬에 순서대로 넣습니다.
새로운 행렬과 수가 맞지 않는 경우 기존 행렬을 반환해야 합니다.
import java.util.*;
class Solution {
public int[][] matrixReshape(int[][] mat, int r, int c) {
int[][] answer = new int[r][c];
Queue<Integer> queue = new LinkedList<>();
for(int i = 0; i < mat.length; i++) {
for(int j = 0; j < mat[0].length; j++) {
queue.offer(mat[i][j]);
}
}
if(r*c != queue.size()) {
return mat;
}
for(int i = 0; i < r; i++) {
for(int j = 0; j < c; j++) {
answer[i][j] = queue.poll();
}
}
return answer;
}
}