11. 프로그래머스(1단계) - 같은 숫자는 싫어

성훈·2021년 8월 2일
0

Algorithm

목록 보기
11/61
post-thumbnail

📌 문제의 조건

  1. 숫자 요소로 가지는 배열을 인자로 가짐.
  2. 인접한 요소가 같은 숫자이면 하나만 남김.

제한사항 🤔

  • 배열 arr의 크기 : 1,000,000 이하의 자연수
  • 배열 arr의 원소의 크기 : 0보다 크거나 같고 9보다 작거나 같은 정수

📌 풀이

첫 풀이 👨‍💻

function solution(arr){  
    let result = [arr[0]]
    for(let i = 1; i < arr.length; i++){
        if(arr[i] !== arr[i-1]){
            result.push(arr[i])
        }
    }
    return result;
}

리듀스 풀이 👨‍💻

function solution(arr){  
    return arr.reduce((acc, cur, idx)=>{
        if(cur !== arr[idx-1]){
            return [...acc, cur]
        } else {
            return [...acc]
        }
    },[])
}

📌 리뷰

리듀스는 성능문제로 풀리지 않는다.
리듀스도 arr을 한번 돌리는건 같은데 배열에 추가하는 것에서 시간이 더 걸리는 듯 하다.

📌 문제 출처

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges#

profile
어떻게 이걸 풀어낼 수 있을까

0개의 댓글