코딩테스트 입문
같은 숫자는 싫어
강민승
2022. 11. 23. 10:31
문제
나의 풀이
function solution(arr) {
let answer = [];
//1.배열을 순회한다.
//2.순회한 처음 값이 전값과 다르면 저장.
for (let i = 0; i < arr.length; i++) {
arr[i - 1] !== arr[i] ? answer.push(arr[i]) : "";
}
return answer;
}
KEY POINT : for문
이번 문제도 문제만 잘 파악하고 짤 수 있다면 충분히 풀 수 있는 문제같다.
키포인트는 같은 배열안에 중복되는 숫자는 있어도 된다는 것. 그저 연속으로 중복된 숫자만 제거해주면 된다.
배열을 순회할 때 전의 배열값과 현재의 배열값이 다른경우는 배열에 넣어주지만 그렇지않으면 중복된다는 의미이기 때문에 넣어주지 않는다. 끝!
다른 사람 풀이방식
function solution(arr)
{
return arr.filter((val,index) => val != arr[index+1]);
}
한줄코드로 filter를 사용하여 맞는 값들을 반환해주었다.현재의 값과 다음의 값을비교하여 같지않은 것을 반환한다.
키포인트는 글쓴이의 내용과 같다.
filter라는 함수가 배열 콜백함수이고 배열을 반환해준다는 것을 적절히 잘 사용한 코드.