Leetcode Java Convert 1D Array Into 2D Array

업데이트:

문제

Link

코드

class Solution {

  public int[][] construct2DArray(int[] original, int m, int n) {
    if (original.length == m * n) {
      int[][] result = new int[m][n];
      for (int i = 0; i < original.length; i++) {
        result[i / n][i % n] = original[i];
      }
      return result;
    } else {
      return new int[0][0];
    }
  }

}

결과

Link

설명

  1. original 배열을 $m \times n$ 크기의 배열로 변환하는 문제이다.
    • 단, 변환이 불가능한 경우 빈 배열을 반환한다.
  2. original의 길이와 $m \times n $이 동일한 경우, 아래를 수행하여 $m \times n$ 크기의 배열로 변환하여 주어진 문제의 결과로 반환한다.
    • result를 $m \times n$ 크기의 배열로 정의한다.
    • 0부터 original의 길이 미만까지 i를 증가시키며 n개씩 넣어야 하므로, result의 $\frac{i}{n}$의 몫에 해당하는 행의 나머지에 해당하는 열에 original[i]를 넣어준다.
    • 변환된 result를 주어진 문제의 결과로 반환한다.
  3. original의 길이와 $m \times n $이 동일하지 않은 경우, 빈 2차원 배열을 주어진 문제의 결과로 반환한다.

소스

Sample Code는 여기에서 확인 가능합니다.

댓글남기기