본문 바로가기

프로그래머스/JavaScript

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

- 배열 arr의 각 원소는 숫자 0부터 9까지

- 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거

- 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지

- 배열 arr의 크기 : 1,000,000 이하의 자연수

 

 

for문 사용

for문으로 현재와 다음의 문자가 같은지를 체크하여

다른 경우만 새로운 배열에 추가

function solution(arr) {
    var answer = []; // 새로운 배열
    
    for(var i = 0; i < arr.length; i++) { // 처음부터 끝까지 반복
        arr[i] == arr[i+1] ? '' : answer.push(arr[i]); 
        // 현재와 다음의 문자가 같은문자인지 확인 후 다를경우에만 새 배열에 추가
    }
    
    return answer;
}

 

filter 사용

filter를 통해 알수있는 현재 요소와 인덱스로 문제 해결

function solution(arr) {
    return arr.filter((el, i) => el != arr[i+1]); 
    // 현재 인덱스의 요소와 다음 인덱스의 요소가 다르면 통과하여 새로운 배열에 추가
}

 

 

 

 


Array.filter() : 주어진 함수의 테스트를 통과하는 모든 요소를 모아 새로운 배열로 반환하는 메서드