🧬알고리즘/Programmers
[JavaScript] 2의 영역
뉴발자
2024. 6. 10. 18:09
728x90
문제
정수 배열 arr가 매개변수로 주어진다.
배열 안의 2가 모두 포함된 가장 작은 연속된 부분 배열을 반환하는 함수를 작성해라.
728x90
나의 풀이
function solution(arr) {
const slicer = [];
// value가 2인 index 값을 모두 저장
arr.map((v, i) => { if(v === 2) slicer.push(i) });
// 저장된 index값이 있다면 부분 배열 반환, 없다면 [-1] 반환
return slicer.length ? arr.slice(slicer[0], slicer[slicer.length-1]+1) : [-1];
}
다른 풀이
function solution(arr) {
// value가 2인 첫 번째 index 값
const from = arr.indexOf(2);
// value가 2인 마지막 index 값
const end = arr.lastIndexOf(2);
return from === -1 ? [-1] : arr.slice(from, end+1);
}
728x90