logo
Posts프로그래머스배열 자르기

배열 자르기

문제 설명

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

제한 사항

  • 2 ≤ numbers의 길이 ≤ 30
  • 0 ≤ numbers의 원소 ≤ 1,000
  • 0 ≤num1 < num2 < numbers의 길이

입출력 예

numbersnum1num2result
[1, 2, 3, 4, 5]13[2, 3, 4]
[1, 3, 5]12[3, 5]

입출력 예 설명

입출력 예 #1

  • [1, 2, 3, 4, 5]의 1번째 인덱스 2부터 3번째 인덱스 4 까지 자른 [2, 3, 4]를 return 합니다.

입출력 예 #2

  • [1, 3, 5]의 1번째 인덱스 3부터 2번째 인덱스 5까지 자른 [3, 5]를 return 합니다.

문제풀이 (나)

function solution(numbers, num1, num2) {
	return numbers.splice(num1, num2 - num1 + 1);
}

Array.splice 메서드를 사용하여 num1 부터 num2 까지의 인덱스번호에 해당하는 배열을 리턴해주었다.

  1. **splice()**는 기존 요소를 제거 또는 교체하거나 제자리에 새 요소를 추가하여 배열의 내용을 변경하는 JavaScript 메서드이다.
  2. splice() 는 두 가지 파라미터를 사용한다. 둘 다 필수다.
  • 요소 제거 또는 추가를 시작할 시작 인덱스.
  • 제거할 요소의 수. 이 값이 0이면 요소가 제거되지 않는다.

2번 항목에서 중요한 점이 있는데, 두 번째 파라미터는 “갯수” 이다. 인덱스 번호가 아니다.

따라서 갯수를 리턴해주려면 다음과 같이 연산해 주면 된다.

num2 - num1 + 1

문제풀이 (다른사람)

function solution(numbers, num1, num2) {
    return numbers.splice(num1, num2-num1+1);
}

레퍼런스