정수 배열 num_list
와 정수 n
이 매개변수로 주어집니다. num_list
를 다음 설명과 같이 2차원 배열로 바꿔 return하도록 solution 함수를 완성해주세요.
num_list
가 [1, 2, 3, 4, 5, 6, 7, 8]
로 길이가 8
이고 n
이 2
이므로 num_list
를 2 * 4
배열로 다음과 같이 변경합니다. 2차원으로 바꿀 때에는 num_list
의 원소들을 앞에서부터 n
개씩 나눠 2차원 배열로 변경합니다.
function solution(num_list, n) {
var answer = [[]];
return answer;
}
function solution(num_list, n) {
var answer = [];
let i = 0;
while (true) {
if (i >= num_list.length) {
break;
}
answer.push(num_list.slice(i, i + n).flat());
i += n;
}
return answer;
}
solution([100, 95, 2, 4, 5, 6, 18, 33, 948], 3);
❗️slice 해준 값을 answer 배열에 넣어주었더니 [ [[1,2]] ]
이렇게 들어가졌다... 그래서 flat()
이라는 함수를 사용해서 배열을 한번 합쳐주었다.
function solution(num_list, n) {
var answer = [];
while(num_list.length) {
answer.push(num_list.splice(0,n));
}
return answer;
}
splice
함수를 이용하면 원본 배열이 변경되기 때문에, 굳이 몇번 부터 몇번까지 잘라야하는지 업데이트해 줄 필요 없다.