😈 2차원으로 만들기
📗 문제 설명
정수 배열 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차원 배열로 변경합니다.
num_listnresult[1, 2, 3, 4, 5, 6, 7, 8]2[[1, 2], [3, 4], [5, 6], [7, 8]]
👀 제한사항
- num_list의 길이는 n의 배 수개입니다.
- 0 ≤ num_list의 길이 ≤ 150
- 2 ≤ n < num_list의 길이
📃 입출력 예
num_list | n | result |
---|---|---|
[1, 2, 3, 4, 5, 6, 7, 8] | 2 | [[1, 2], [3, 4], [5, 6], [7, 8]] |
[100, 95, 2, 4, 5, 6, 18, 33, 948] | 3 | [[100, 95, 2], [4, 5, 6], [18, 33, 948]] |
💬입출력 예 설명
입출력 예 설명 #1
- num_list가 [1, 2, 3, 4, 5, 6, 7, 8] 로 길이가 8이고 n이 2이므로 2 * 4 배열로 변경한 [[1, 2], [3, 4], [5, 6], [7, 8]] 을 return합니다.
입출력 예 설명 #2
- num_list가 [100, 95, 2, 4, 5, 6, 18, 33, 948] 로 길이가 9이고 n이 3이므로 3 * 3 배열로 변경한 [[100, 95, 2], [4, 5, 6], [18, 33, 948]] 을 return합니다.
💎나의 풀이
Array.from 을 통해 새로운 2차원 배열을 만들어줄거다.
우선 새로운 배열의 length를 구해주자.
num_list의 배열을 n만큼 쪼개서 2차원 배열에 담아야한다.
입출력 예를 살펴보면
num_list [1, 2, 3, 4, 5, 6, 7, 8] 의 length는 8이다.
result 값인 [[1, 2], [3, 4], [5, 6], [7, 8]] 의 배열을보면 1차원 배열 4개가 들어가있다.
그렇다면 1차원 배열을 담을 2차원 배열의 length는 num_list / n 이 되는 것이다.
const solution = (num_list,n) => Array.from({length:num_list.length/n})
배열이 만들어 졌으니 안의 값을 구해보자.
map 메소드는 배열을 순회한다.
그렇다면 순회하면서 n씩 잘라주면 된다.
Array.from 의 콜백함수에선 map처럼 배열을 맵핑 할 수 있다.
const solution = (num_list,n) => Array.from({length:num_list.length/n}, v => num_list.splice(0,n))
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 😈] JavaScript 내적 (1) | 2023.10.30 |
---|---|
[프로그래머스 😈] JavaScript 홀수 vs 짝수 (0) | 2023.10.26 |
[프로그래머스 😈] JavaScript 최빈값 구하기 (0) | 2023.10.25 |
[프로그래머스 😈] JavaScript 안전지대 (0) | 2023.10.25 |
[프로그래머스 😈] JavaScript OX퀴즈 (0) | 2023.10.24 |