[코딩테스트 풀이] 같은숫자는 싫어

Jeenie·2024년 6월 5일

이 문제의 포인트는 "중복제거"가 아닌 "직전중복제외"
쉽게 생각했는데 꽤 어려웠다.

map을 이용한 풀이

효율성 28.1

이번에도 역시 내가 자주 사용하는 패턴.
빈 배열을 만들고 map을 돌며 push

function solution(arr){
    var answer = [];
    arr.map((v,i) => answer[answer.length - 1] !== v ? answer.push(v) : null)
    return answer;
}

하지만 좋지 않다...

  1. 쓸데없는 빈배열을 만들었고
  2. map으로 새로운 배열을 만들어서 밀어넣었다

filter를 이용한 풀이

효율성 28.1
시간복잡도로는 map과 filter 모두 O(n)으로 동일하긴 하다.

단순한 중복제거라면 filter로 간단한데 이건 어떻게 안되나...?
생각만 했는데
딱 filter로 구현한 코드가 있었다. 이렇게 간단하다니!

function solution(arr)
{
    return arr.filter((val,index) => val != arr[index+1]);
}

다른 풀이도 있었지만 이게 제일 가독성이 좋은 것 같다.

profile
Web Front-end developer

0개의 댓글