저장을 습관화

프로그래머스 LV.0 배열 자르기 본문

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

프로그래머스 LV.0 배열 자르기

ctrs 2023. 9. 14. 00:24

프로그래머스 LV.0 배열 자르기

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

 

프로그래머스

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

programmers.co.kr

 

1. 문제 명

배열 자르기


2. 문제 설명

정수 배열 numbers와 정수 num1, num2가 매개변수로 주어질 때, numbers의 num1번 째 인덱스부터 num2번째 인덱스까지 자른 정수 배열을 return 하도록 solution 함수를 완성해보세요.


3. 제한 사항

- 2 ≤ numbers의 길이 ≤ 30

- 0 ≤ numbers의 원소 ≤ 1,000

- 0 ≤num1 < num2 < numbers의 길이


4. 예시

numbers num1 num2 result
[1, 2, 3, 4, 5] 1 3 [2, 3, 4]
[1, 3, 5] 1 2 [3, 5]


5. 기본 제공 코드

function solution(numbers, num1, num2) {
    var answer = [];
    return answer;
}


6. 제출한 내 답

const solution = (numbers, num1, num2) => {
  return numbers.slice(num1, num2 + 1);
};

 

6-2. VSC에 작성한 내용

const solution = (numbers, num1, num2) => {
  return numbers.slice(num1, num2 + 1);
  // return numbers.splice(num1, num2);
};

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


7. 특이사항

뭐야 개쉽네 라고 생각했었는데

틀렸다

 

처음엔 splice를 사용했으나 틀린 부분이 있어 질문하기 탭을 읽어보고 다시 문제를 살펴보니

num1은 자르기를 시작할 지점, num2는 자르기를 끝낼 지점 즉 인덱스를 말하는 것이었다.

하지만 splice(num1, num2)를 쓰면 num1부터 자르기 시작해서 num2개 만큼 자르기 때문에 틀렸던 것

 

문제를 잘읽자

 


8. 다른 사람이 작성한 답

8-1.

function solution(numbers, num1, num2) {
    var answer = [];

    for (let i = num1; i < num2+1; i++) {
        answer.push(numbers[i])
    }

    return answer;
}