- 문제
- 0-9까지의 숫자가 무작위만큼 담긴 배열이 주어짐
- 연속되는 숫자중 중복되는 숫자는 1개만 남기고 리턴
- 예시
- [1,1,1,2,2,3,4,4,5,4,5,5] => [1,2,3,4,5,4,5]
- [1,3,2,4,4,5] => [1,3,2,4,5]
- 수도코드
결과와 동일
- 결과
function solution(arr)
{
let result = [];
for (let i = 0; i < arr.length; i++) {
if (i === 0) {
result.push(arr[i]);
} else if (arr[i] !== arr[i-1]) {
result.push(arr[i])
}
}
return result;
}
- 레퍼런스
function solution(arr)
{
return arr.filter((val,index) => val != arr[index+1]);
}
- filter의 활용법을 공부하면 좋을 듯하다
- arr을 순회하며 현재 인덱스의 값이 다음 인덱스의 값과 일치하지 않을 경우만 남기고 제거하는 형식
- 예시2: [1,3,2,4,4,5] => [1,3,2,4,5]
- [0]인 1은 [1]인 3과 다르므로 남기고, [1]인 3은 마찬가지로 [2]인 2와 다르므로 남김, [3]인 4는 [4]와 같으므로 제거하고, [4]인 4는 [5]인 5와 다르므로 남게 됨