프로그래머스, 2차원으로 만들기 Javascript

cptkuk91·2022년 10월 26일
1

Algorithm

목록 보기
118/161
post-custom-banner

문제

https://school.programmers.co.kr/learn/courses/30/lessons/120842

코드

function solution(num_list, n) {
    let result = [];
    
    for(let i = 0; i < num_list.length / n; i++){
        result = [...result, num_list.slice(i * n, i * n + n)];
    }
    
    return result;
}

코드 풀이

slice를 통해 각 자리에 맞는 숫자를 넣어주고, 결과값을 반환합니다.

기존 result에 들어 간 result(배열)을 ...을 통해 그대로 넣어준 상태에서, slice를 통해 남은 값들을 처리하였습니다.

예를들어 n은 3일 때, 배열의 0번째, 1번째, 2번째 를 우선적으로 넣어줘야 합니다.

i는 0부터 시작하기 때문에 0 3은 0입니다. slice option값 i n + n의 경우 0 * 3 + 3이기 때문에 3전까지 slice를 통해 찾아낼 수 있습니다.

그럼 result 배열에 [[0,1,2]]가 들어갑니다.

이후 i는 1입니다. 1 3은 3! slice option값 i n + n의 경우 1 * 3 + 3 6이니까 5까지의 숫자를 배열에 넣어줄 수 있습니다. 그럼 [3,4,5]가 들어갑니다.

이때 result는 [[0,1,2],[3,4,5]] 이런식으로 됩니다.

profile
메일은 매일 확인하고 있습니다. 궁금하신 부분이나 틀린 부분에 대한 지적사항이 있으시다면 언제든 편하게 연락 부탁드려요 :)
post-custom-banner

0개의 댓글