프로그래머스Lv1 - 같은 숫자는 싫어

요리하는코더·2021년 8월 10일
0

알고리즘 - 문제

목록 보기
12/48
post-thumbnail

코드

function solution(arr)
{
    var answer = [];

    // for(let i=1;i<arr.length;i++) {
    //     if(arr[i-1] !== arr[i]) {
    //         answer.push(arr[i-1]);
    //     }
    // }
    // if(arr[arr.length-1] !== answer[answer.length-1]) answer.push(arr[arr.length-1])
    
    arr.reduce((acc, cur) => {
        // console.log(acc,cur)
        if(acc !== cur) answer.push(acc);
        return cur;
    })
    if(answer.slice(-1)[0] !== arr.slice(-1)[0])
        answer.push(arr.slice(-1)[0]);
    return answer;
}

풀이 및 소감

먼저 빠르게 생각나는 방식으로 for문을 돌면서 앞의 값과 다른지 확인하고 for문 밖에서 마지막 값에 대해 처리해주었다. 그리고 reduce로도 풀 수 있을 거 같아서 한번 더 풀어보았다. 가장 좋아요가 많은 답은 filter를 사용했는데 주어진 배열보다 큰 index를 사용하면 에러가 날 거 같아서 나는 따로 처리해주었는데 undefinednull로 처리돼서 에러가 안 나는 거 같다.

profile
요리 좋아하는 코린이

0개의 댓글