자바스크립트

[JavaScript] 프로그래머스 2의 영역

코딩하는둥이 2024. 7. 8. 12:16
 

프로그래머스

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

programmers.co.kr

문제 설명

정수 배열 arr가 주어집니다. 배열 안의 2가 모두 포함된 가장 작은 연속된 부분 배열을 return 하는 solution 함수를 완성해 주세요.

단, arr에 2가 없는 경우 [-1]을 return 합니다.

입출력 예

arr result
[1, 2, 1, 4, 5, 2, 9] [2, 1, 4, 5, 2]

 

코드

const solution = (arr) => {
  const firstIndex = arr.indexOf(2);
  const lastIndex = arr.lastIndexOf(2);
  
  if (firstIndex === -1) {
    return [-1];
  }
  
  return arr.slice(firstIndex, lastIndex + 1);
}
 

 

설명

1) indexOf를 사용하여 배열에서 첫번째로 나타나는 숫자 2를 찾습니다.

2) lastIndexOf를 사용하여 배열에서 마지막으로 나타나는 숫자 2의 위치를 찾고 해당 범위의 부분 배열을 반환하고 숫자 2가 없는 경우에는 [-1]를 반환합니다.