본문 바로가기

주간미션/수행일지-알고리즘

[2023-01-17] 같은 숫자는 싫어 (리팩토링필수)

728x90
반응형

나의 생각 과정 :
첫 번째 원소를 temp에 저장하고, 다음원소의 숫자가 temp와 같은지 비교하고, 같으면 slice, 다르면 temp 최신화를 통해 한 칸씩 맞춰나간다. => 해결되지 않음.

/

function solution(arr)
{
 let answer;
 let temp=arr[0];
    let index = 0;
        let count=1;
 
    while(index<arr.length){
            if(temp == arr[count]){
                arr= [...arr.slice(index,count), ...arr.slice(count+1)];
            }else{
                temp=arr[count];
            }
        index++;
        count++;  
    }
    return arr;
}

다른 사람풀이 :
반환할 배열 answer를 선언하고, arr을 반복문으로 검사하여 중복이 생기지 않으면 빈 배열에 push 한다.

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;
}

filter를 사용하여 더욱 간단하게 표현한다.

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


Calendar
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Visits
Today
Yesterday