저장을 습관화

프로그래머스 LV.0 순서 바꾸기 본문

코딩 테스트/프로그래머스 - 자바스크립트

프로그래머스 LV.0 순서 바꾸기

ctrs 2023. 9. 17. 01:55

프로그래머스 LV.0 순서 바꾸기

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

1. 문제 명

순서 바꾸기


2. 문제 설명

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


3. 제한 사항

- 2 ≤ num_list의 길이 ≤ 30

- 1 ≤ num_list의 원소 ≤ 9

- 1 ≤ n ≤ num_list의 길이


4. 예시

num_list n result
[2, 1, 6] 1 [1, 6, 2]
[5, 2, 1, 7, 5] 3 [7, 5, 5, 2, 1]


5. 기본 제공 코드

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


6. 제출한 내 답

const solution = (num_list, n) => {
  let toFront = num_list.splice(n);
  num_list.map((v) => toFront.push(v));
  return toFront;
};

 

6-2. VSC에 작성한 내용

const solution = (num_list, n) => {
  let toFront = num_list.splice(n);
  num_list.map((v) => toFront.push(v));
  return toFront;
};

// 테스트
console.log(solution([2, 1, 6], 1));
console.log(solution([5, 2, 1, 7, 5], 3));


7. 특이사항

없음


8. 다른 사람이 작성한 답

8-1. 배열의 전개연산자

function solution(num_list, n) {
    num_list.push(...num_list.splice(0, n));
    return num_list
}

 

8-2. concat 

function solution(num_list, n) {
    return num_list.slice(n).concat(num_list.slice(0,n));
}

처음 문자열 문제풀다가 concat 봤을때는 그냥 문자열끼리 더하면 되는데 왜 메소드를 생각했는데

배열끼리도 더할 수가 있구나