728x90
문제
정수 배열 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) {
let answer = [];
while(num_list.length)
answer.push(num_list.splice(0, n))
return answer;
}
// 오류 있는 코드
// function solution(num_list, n) {
// let answer = [];
// while(num_list.length)
// answer.push(num_list.splice(num_list, n))
// return answer;
// }
// why? splice안에서 num_list로 작성했는데 배열 자체가 되기에 오류이다. 하지만 정답처리는 되긴했다.
문제에서 하고 싶은 말은 num_list의 배열을 n개씩 묶어서 2차원 배열로 만드는 것이다.
위의 코드를 분석해보겠다.
let answer에 빈배열을 선언한뒤 while문에서 num_list의 길이만큼 반복한다.
num_list의 splice로 나눈다. splice는 splice(start, end)로 사용된다.
splice안에서 start는 배열을 시작할 인덱스, end는 배열에서 제거할 인덱스 요소의 수인것이다.
즉, splice에서 start로 시작해 end씩 제거한후 answer 배열에 추가하는 것이다.
그래서 위와 같이 작성한 것이다.
https://stackoverflow.com/questions/22464605/convert-a-1d-array-to-2d-array
splice에 대한 설명
https://ko.javascript.info/array-methods
728x90
'⌨️ 프로그래머스 > 코딩테스트 입문' 카테고리의 다른 글
[프로그래머스] 주사위의 개수 🎲 | JS (0) | 2024.07.13 |
---|---|
[프로그래머스] 배열 회전시키기 🔄️|JS (0) | 2024.07.12 |
[프로그래머스] 중복된 숫자 개수 🫡 | JS (0) | 2024.06.27 |
[프로그래머스] 머쓱이보다 키 큰 사람 🏫 | JS (0) | 2024.06.27 |
[프로그래머스] #35 가위 바위 보 ✌🏻✋🏻✊🏻| JS (0) | 2024.06.25 |