배열에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거한 배열을 리턴해야 한다.
이때 배열의 원소의 순서를 유지해야 한다.
[1, 1, 3, 3, 0, 1, 1] → [1, 3, 0, 1]
[4, 4, 4, 3, 3] → [4, 3]
// 스택을 하나 만든다.
// 반복문을 돌려 배열의 요소를 순회한다.
// 만약, 스택의 마지막 요소와 현재 요소가 다르다면, push한다.
// 반복문이 끝나고 스택을 리턴한다.
function solution(arr){
const stack = [];
for (el of arr) {
if (stack[stack.length - 1] !== el) {
stack.push(el);
}
}
return stack;
}
filter()
메소드를 이용한 풀이
function solution(arr) {
// 요소들 중에 자신의 바로 뒤의 요소와 값이 다른 요소만 필터링한다.
return arr.filter((el, idx) => el !== arr[idx + 1]);
}