Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
Tags
- 검색엔진최적화
- aws
- ec2
- 렌더링 과정
- tcp
- SSL
- CI
- 자동화
- 이미지 포맷 변경
- 성능 개선
- DNS
- TLS
- certbot
- 이미지 최적화
- SSH
- nextJS
- pm2
- gitgub actions
- 이미지 압축
- workflow
- nginx
- 배포
- https
- 브라우저
- 무중단
- 3-Way HandShake
- 리버스 프록시
- webp
- 로드 밸런싱
- 인증서
Archives
- Today
- Total
개발일기
[JavaScript]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_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]] |
풀이
function solution(num_list, n) {
var answer = [];
for(let i = 0; i<num_list.length; i+=n){
answer.push(num_list.slice(i, i+n))
}
return answer;
}
풀이 설명
가장 먼저 생각난 건 for문과 slice() 메서드를 사용해서 answer라는 빈 배열에 각각 넣으면 되지 않을까? 하고 생각해 봤고, slice()를 사용해서 문제를 해결하려면 start값과 end값이 필요한데 이것을 for문으로 해결하려고 했고, 코드를 작성 하면서 답을 찾아 갔다.
1. 입출력 예와 같이 n의 숫자만큼 num_list에서 조각 배열을 만든다. 그렇다면 slice()에서 start는 0,2,4,6이 되야하고, end는 2, 4, 6, 8가 되어야 한다.(end는 미포함 이기 때문) i를 start값으로 사용하기 위해 for문이 반복할 때마다 n의 값만큼 증가 하면 start의 값을 구할 수 있다.
2. end값은 i의 값에 n을 더해 주면 된다. slice() 메서드에 start값과 end값을 넣고, 그 값을 빈 배열인 answer에 push() 후 값을 리턴하면 된다.
'Algorithm' 카테고리의 다른 글
[JavaScript]모스부호(1) (0) | 2024.07.05 |
---|---|
[JavaScript]진료순서 정하기 (0) | 2024.07.05 |
[JavaScript]최댓값 만들기(2) (0) | 2024.07.02 |
[JavaScript] 배열 만들기 6 (0) | 2024.06.27 |
[JavaScript] 배열 만들기 4 (0) | 2024.06.26 |