[LeetCode] Convert 1D Array Into 2D Array

준규·2022년 10월 19일
0

인덱스가 0 부터 시작하는 숫자 배열 original 과 두 정수 m , n이 주어질 때 m*n 2차원 배열을 만들 수 있다고 할 때 original의 모든 숫자들을 2차원 배열에 사용 할 수 있는지를 묻는 문제이다.

인덱스 0~n-1 사이의 값은 2차원 배열의 첫번째 row가 되고 그 다음 줄의 요소는 n ~ 2*n-1 사이의 요소들 값이 된다고 한다.

이러한 조건에서 m*n 이차원 배열을 리턴하는 문제이다.

Example을 보자

만약 m*n 2차원 배열을 만들 수 없다면 빈 배열 [] 을 리턴해주면 된다.

const construct2DArray = function (original, m, n) {
  let result = [];

  if (m * n !== original.length) return result;

  for (let i = 0; i < original.length; i += n) {
    result.push(original.slice(i, i + n));
  }

  return result;
};

mn 2차원 배열이 만들어지려면 mn 이 original의 길이와 같아야 하므로 우선 m*n !== original.length 라면 빈 배열을 리턴해주었다.

그 다음 n개 만큼의 숫자가 2차원 배열의 한 줄이 되므로 for문을 돌면서 n 단위로 original의 요소들을 부분 배열로 만들어 넣어주었다.

submit을 해보니

정답이었다!

profile
안녕하세요 :)

0개의 댓글