function solution(arr)
{
var answer = [];
for(let i=0; i<arr.length; i++){
if(arr[i] == arr[i+1]){
arr.splice(i,1);
}
}
return arr;
}
ㅣ-> 잘못된 이유 : 온전한 배열에서 앞뒤 n 번째 항목들을 비교해야하는데 splice 함수는 배열을
잘라버리기 때문에 한 번 동작해버리면 다음부턴 뒤죽박죽이 되어버린다.
수정한 코드
function solution(arr)
{
var answer = [];
for (let i = 0; i < arr.length; i++) {
if(arr[i] !== arr[i+1]) answer.push(arr[i])
}
return answer;
}
ㅣ-> 조건식 접근은 똑같이 유지했지만, 조건안의 실행문을 splice에서 push로,
받아온 배열 arr을 그대로 사용하는게 아니라 다른 새로운 배열을 만들어서 이어지는 숫자없이
채워주는 방식으로 수정.
//검색을 통해 찾은 filter를 이용한 풀이
return arr.filter((val,index) => val != arr[index+1]);
같은 문제를 3명이서 풀고 코드를 비교해봤는데 3명다 splice로 접근한게 놀랍기도하고,
재밌기도 했다.