[JS] 순서 바꾸기 programmers concat()

0

코딩테스트

목록 보기
54/80
post-thumbnail

🎀 문제

정수 리스트 num_list와 정수 n이 주어질 때, num_listn 번째 원소 이후의 원소들과 n 번째까지의 원소들로 나눠 n 번째 원소 이후의 원소들을 n 번째까지의 원소들 앞에 붙인 리스트를 return하도록 solution 함수를 완성해주세요.

function solution(num_list, n) {
    var answer = [];
    return answer;
}

🎀 내 답변

function solution(num_list, n) {
    let answer = []
    let first = num_list.splice(n, num_list.length);
    let second = num_list.splice(0, n);
    first.map((item) => answer.push(item))
    second.map((item) => answer.push(item))
    return answer;
}

solution([5, 2, 1, 7, 5], 3);
  1. n 이후의 값부터 끝까지 추출하여 first 변수에 저장
  2. 0번째부터 n이전까지의 숫자를 추출하여 second 변수에 저장
  3. 각각 map을 돌려서 answer 배열에 숫자만을 추출해 넣어주고 answer 반환.

🎀 더 나은 답변

function solution(num_list, n) {
    return num_list.slice(n).concat(num_list.slice(0,n));
}
  1. slice를 사용해서 n 번째 부터 끝까지 잘라낸다.
  2. 그렇게 만들어진 배열에 concat을 사용해서 0번째 부터 n까지 잘라낸 배열을 하나로 합쳐준다. 끝.....👍🏼

배열 합칠때 스프레드 대신 concat을 사용해 봐야겠다...
어리바리 곤듀 오늘도 하나 배워갑니다

profile
일단 해. 그리고 잘 되면 잘 된 거, 잘 못되면 그냥 해본 거!

0개의 댓글