-
566. Reshape the Matrix javaLeetCode_Study_Plan/Programming Skills 2022. 9. 21. 13:16
https://leetcode.com/problems/reshape-the-matrix/?envType=study-plan&id=programming-skills-i
public int[][] matrixReshape(int[][] mat, int r, int c) { int[][] ans = new int[r][c]; if ((r == mat.length && c == mat[0].length) || r * c != mat.length * mat[0].length) return mat; int x = 0, y = 0; // x, y는 새로운 matrix용 for (int i = 0; i < mat.length; i++){ //i, j는 원본 matrix용 for (int j = 0; j < mat[0].length; j++){ if (y == c) { x++; //column이 넘쳐버리면 x를 한칸 더 늘려야 함 y = 0; } System.out.println("x:" + x + " y:" + y + " i:" + i + " j:" + j); ans[x][y] = mat[i][j]; y++; } System.out.println(Arrays.deepToString(ans)); } return ans; }
두 개의 메트릭스 i, j / x, y 를 구별하는 것에서 에러처리가 한번 있었고,
test case 4번 예제를 보면
위와 같이 reshape이 불가능한 구조를 상상해봤을 때 반복문을 돌기 전에 에러처리를 할 수 있었다.
조금 더 응용해본다면 처음부터 사이즈를 같다면 원래의 matrix를 그대로 뱉음으로 시간을 절약할 수 있다.
'LeetCode_Study_Plan > Programming Skills' 카테고리의 다른 글
1678. Goal Parser Interpretation java (1) 2022.09.21 1768. Merge Strings Alternately java (1) 2022.09.21 1572. Matrix Diagonal Sum java (0) 2022.09.21 1672. Richest Customer Wealth java (0) 2022.09.21 283. Move Zeroes java (0) 2022.09.20