알고리즘 풀이/프로그래머스

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

mhko411 2021. 2. 28. 14:56
728x90

programmers.co.kr/learn/courses/30/lessons/12906?language=javascript

 

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

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

programmers.co.kr


나의 코드

입려된 배열의 마지막에서 두 번째 원소까지 탐색을 진행한다.

현재 인덱스의 숫자의 다음 인덱스의 숫자가 다르다면 answer에 push를 하며 탐색이 모두 종료되었을 때 마지막 인덱스의 숫자도 push하여 반환한다.

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

    for (var i=0; i<arr.length-1; i++){
        if (arr[i] !== arr[i+1]){
            answer.push(arr[i]);
        }
    }
    answer.push(arr[arr.length-1])
    return answer;
}

 

다른 사람의 코드

filter()를 활용하여 주어진 조건에 부합하는 요소들로 새로운 배열을 만들어 반환한다.

val은 조건에의해 처리할 현재 요소를 나타내고 index는 처리할 요소의 인덱스를 나타낸다.

즉 첫 번째 매개변수에는 처리할 현재 요소, 두 번째 매개변수는 처리할 요소의 인덱스를 의미한다.

이를 통해 현재 요소와 다음 요소가 다르다면 새로운 배열에 추가시킨다.

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

'알고리즘 풀이 > 프로그래머스' 카테고리의 다른 글

[Level 2] 타겟 넘버  (0) 2021.03.03
[Level 3] 가장 먼 노드  (0) 2021.03.02
[Level 2] 큰 수 만들기  (0) 2021.02.27
[Level 2] 튜플  (0) 2021.02.26
[Level 2] 다음 큰 숫자  (0) 2021.02.26