알고리즘 공부하기!

[프로그래머스] 같은 숫자는 싫어

hyer!! 2021. 3. 5. 14:28

 

programmers.co.kr/learn/courses/30/lessons/12906

 

코딩테스트 연습 - 같은 숫자는 싫어

배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은

programmers.co.kr

 

- 내 풀이

 

function solution(arr){
    var answer = [];
    for(var i = 0; i < arr.length; i++){
        if(arr[i] != arr[i + 1]){
           	// 배열의 앞에 숫자와 뒤에 숫자가 다르면 연속되지 않은 숫자 이기 때문에 새로운 배열 객체에 담아준다!!
           	answer.push(arr[i]);
        }        
    }
    return answer;
}

 

- 깨달은 점

 

처음에는 if 조건문에서 배열의 앞 숫자와 뒷 숫자가 같으면 기존 배열에서 빼는 식으로 구현을 했는데

그러다보니 조건을 건너 뛰는 숫자가 생겨 연속되는 숫자가 배열에서 나왔다.

생각하다보니 다른 숫자를 새로운 배열에 넣는 식으로 구현하게 되었다.

 

 

- 다른 사람의 풀이 

 

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

 

→  이해 못함....ㅎㅎ