본문 바로가기

알고리즘 코딩

같은 숫자는 싫어 ! 알고리즘

자세한 문제는 아래 프로그래머스 링크 참조바란다.

https://school.programmers.co.kr/learn/courses/30/lessons/12906

 

나의 풀이는 아래와 같다.

function solution(arr)
{
    var answer = []
    arr.map((_, i)=>{if (arr[i]!==arr[i-1]) {
            answer.push(arr[i])
        } 
    });    
    return answer
}


arr = [4,4,4,3,3]
console.log(solution(arr))

 

풀면서 중요했던 포인트는 map() 메서드가 arr을 돌면서 이전 인덱스 요소와 값이 다른 요소만 var answer [] 배열에 넣는다는 것이다.

굳이 빈 배열을 하나 만들것도 없이 그냥 arr에다 필터를 써서 이전 인덱스 요소와 값이 다른 요소만 남겨도 될 뻔했다. 그래서 filter() 를 써서 만들어 보았다.

 

function solution(arr)
{ 
    return arr.filter((v, i)=>arr[i]!==arr[i-1])
}


arr = [1,1,3,3,0,1,1]	
console.log(solution(arr))

filter 아이디어는 다른 사람의 것을 빌려왔다. 코드는 내가 짰다.