- 배열 내 연속적으로 반복되는 숫자가 있다면, 하나만 남기고 제거 (단순히 반복되는x, 중복되는x)
- 들어있는 숫자 순서대로 반환
- 배열 내 원소들은 0이상 9이하의 숫자
처음에는 '중복되는' 숫자를 제거하는 방식으로만 생각해서, new Set()
메서드를 사용했다. 하지만 문제가 말하는 건, '연속적으로 반복되는' 숫자가 있다면 하나를 남기는 것!
const myArr = [2, 2, 3, 3, 3, 0, 2, 2];
const solution = (arr) => [...new Set(arr)]
// 반환 값 : [2, 3, 0]
모든 중복요소를 하나만 남기고 삭제해버리기 때문에, 문제의 의도와 맞지 않다.
문제의 의도처럼, 연속되는 숫자만 제거하는 방식이라면 반환 값이 [2, 3, 0, 2]
로 반환돼야 한다.
const solution = (arr) =>
arr.filter((el, i, self) => self[i] !== self[i+1])
어차피 배열을 반환시켜줘야 하기 때문에, filter()
메서드를 사용했다.
filter()
를 걸어준 배열(self
)의 각 index element
가 next index element
와 같지 않은 요소들만 배열에 담아 반환시켜주는 방식으로 풀었다.
그리구 다른 사람들이 풀이 중 가장 좋아요를 많이받은 풀이가 나와 같았다 ㅎ,.ㅎ ✌🏻
나 초큼 성장했을지도 ,, 😎🥳 ?