개발/알고리즘(코딩테스트)

프로그래머스, 자바스크립트) 2의 영역

빔네모 2024. 1. 16. 20:08

문제

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

 

프로그래머스

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

programmers.co.kr

 

풀이

첫번째 2를 찾기 위해서 => indexOf

마지막 2를 찾기 위해서 => lastIndexOf 를 사용한다.

두개다 값이 있는 경우에는 배열을 인덱스를 사용해 잘라준다. (slice는 인덱스 앞까지 자름, 따라서 +1 추가)

function solution(arr) {
  const first2 = arr.indexOf(2);
  if (first2 === -1) return [-1];
  const last2 = arr.lastIndexOf(2);
  if (last2 === -1) return [2];
  return arr.slice(first2, last2 + 1);
}