고득점 Kit [스택/큐] - 같은 숫자는 싫어

세나정·2023년 5월 1일
0

문제

내 풀이

stack을 활용해서 만약 넣을려는 값이 다음에 넣을려는 값과 같다면 그에 해당하는 넣을려는 값은 넣었다 빼주었다. (?)

즉, 다음 인덱스의 값과 자신의 값이 달라야만 넣어줌

하지만 코드가 만족스럽지 못하고 엥 소리가 나온다..

function solution(arr)
{
    let stack = [];
    
    for (i=0; i<arr.length; i++) {
        if (arr[i] === arr[i+1]) {
            stack.push(arr[i])
            stack.pop()
        } else {
            stack.push(arr[i])
        }
    } 
    
    return stack
}

다른 사람 풀이

filter를 생각도 해봤지만 정말 간단하고 정석인 filter가 있었다

function solution(arr) {
	return arr.filter( (v, i) => v !== arr[i+1])
}

혹은 arr[0]을 배열로 선언한 정석풀이

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

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

    return answer;
}
profile
기록, 꺼내 쓸 수 있는 즐거움

0개의 댓글