개발로그필름
[프로그래머스] 2차원으로 만들기 javascript 본문
728x90
반응형
SMALL
https://school.programmers.co.kr/learn/courses/30/lessons/120842
문제
나의 풀이
function solution(num_list, n) {
var answer = [];
for(i=0; i<num_list.length; ){
var array = [];
for(j=0; j<n; j++){
array.push(num_list[i]);
i++
}
answer.push(array)
}
return answer;
}
for문으로 전체 num_list를 돌면서
또다른 array 배열을 만들어 2차원 배열을 만드는 for문 작성
n만큼 돌면서 array에 num_list 원소를 push 하고 모든 for문이 끄탄면
answer에 push해서 return
다른 사람 풀이
function solution(num_list, n) {
var answer = [];
while(num_list.length) {
answer.push(num_list.splice(0,n));
}
return answer;
}
이번 기회에 splice() 메서드를 처음 알게 되었다,, ㅎㅎ
splice() 자세한 설명은 밑에 참고!!
num_list 길이 만큼 반복하면서
맨처음 num_list.splice(0,n)을 하게 되면 이 코드 자체는 [1,2]이고 그 말은 [1,2]를 삭제한다는 뜻이므로
num_list에는 [3,4,5,6,7,8]이 남게 된다
또한 [1,2]를 answer에 push 했으므로 answer 배열에는 [1,2]가 들어가게 된다
이걸 계속 반복하면 [3,4] [5,6] [7.8] 이 각각 answer에 push 되어 최종적으로 2차원 배열 anser을 return 할 수 있다
정말 놀랍고 신기하고 많이 배웠던 풀이!!
splice()
배열의 기존 요소를 삭제 또는 교체하거나 새 요소를 추가하여 배열의 내용을 변경
array.splice(start[, deleteCount[, item1[, item2[, ...]]]])
start
시작 인덱스
deleteCount
제거할 요소의 수
item1, item2, <em>...</em>
배열에 추가할 요소
아무것도 지정하지 않으면 제거만 한다
반응형
LIST
'coding test > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 배열 회전시키기 javascript (pop, shift, splice, filter, delete) (0) | 2023.04.27 |
---|---|
[프로그래머스] 공 던지기 javascript (0) | 2023.04.26 |
[프로그래머스] 점의 위치 구하기 javascript (0) | 2023.04.25 |
[프로그래머스] 구슬을 나누는 경우의 수 javascript (0) | 2023.04.24 |
[프로그래머스] 가위 바위 보 javascript (0) | 2023.04.23 |
Comments