개발일기

[JavaScript] 2의 영역 본문

Algorithm

[JavaScript] 2의 영역

황대성 2024. 6. 18. 18:00
문제

 

입출력

 

풀이
function solution(arr) {
  var answer = [];
  if (!arr.includes(2)) {
    return [-1];
  }
  return arr.slice(arr.indexOf(2), arr.lastIndexOf(2) + 1);
}

 

풀이 내용

 

문제를 보고 제일 먼저 생각 났던 것은 indexOf와 lastIndexOf, 그리고 slice 이다. 단순하게 2가 위치해 있는 부분을 찾을 수 있는 메서드를 먼저 생각 했고, 부가적인 조건을 클리어 해보니 위의 풀이가 나온 것 같다.

 

1. 배열에 2가 없는 조건을 먼저 클리어 하기 위해 includes를 사용해서 arr의 배열에 2가 없을 시 [-1]을 리턴 하도록 했다.

2. 2와 2사이의 요소들을 가져와야 하기 때문에 slice 메서드를 사용했고, 2의 인덱스 값을 찾기 위해서 indexOf와 lastIndexOf을 같이 사용했다.

3. 배열안에 2라는 요소가 1개 있을 시 [2]를 리턴하는 조건이 있는데, 이것은 2번에서도 적용되기 때문에 따로 조건을 추가할 필요가 없다.