인덱스가 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을 해보니
정답이었다!