본문 바로가기

개발/코딩테스트

[Javascript] 프로그래머스 - 같은 숫자는 싫어(스택/큐)

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

    for(let i = 0; i < arr.length; i++) {
        if(arr[i] !== arr[i+1]) {
            answer.push(arr[i]);
        }
    }
    
    return answer;
}
  • arr = [1, 1, 3, 3, 0, 1, 1] 이면 [1, 3, 0, 1] 을 return 합니다.
  • arr = [4, 4, 4, 3, 3] 이면 [4, 3] 을 return 합니다.

얼핏 보면 중복을 제거하는 문제로 보이지만 첫 번째 케이스 [1, 3, 0, 1] 케이스는 중복을 제거한 결과가 아니다. 따라서 단순 중복 제거로 includes() 함수를 쓰면 안 된다.

 

arr[0]과 arr[1]을 비교해서 같은 숫자이면 다시 돌고, 다른 숫자이면 answer 배열에 넣어주는 방식으로 문제를 풀이했다.