알고리즘/프로그래머스 - JS

[프로그래머스 - JS] level.1 같은 숫자는 싫어

개발자성장기 2023. 5. 17. 17:40
반응형

 

 


나의 풀이 

아 이거 스택문제이구나 싶어서 바로 풀었는데 처음에는 시간초과가 났다. 

배열의 크기가 1,00,000이하이기 때문에 가독성 조금 더 좋은 forEach로 충분히 커버가능할 것 같았지만 결과는 시간초과 

그래서 결국 아래처럼 for문으로 바꾸고 나니 통과  

여기서 의문이 들었다.  for과 forEach의 속도 차이가 그렇게 크지 않기 때문에  크기 1,000,000정도는 간단한코드이기에 괜찮을 것 같았는데 이런결과가 나오다니 내가 둘의 차이를 제대로 모르는 것 같았다. 

그래서 아래와 같은 글을 작성했다. 

https://html-jc.tistory.com/648

 

[JS] for vs forEach

코딩테스트 문제를 풀다가 간단한 코드인데 for문으로 하면 통과인데 forEach문으로 하면 실패하는 문제가 있었다. for문이 더 빠르다는 것은 알고있었지만 어느정도 차이나는지 forEach가 무엇때문

html-jc.tistory.com

 

풀이 1)

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

다른 사람 풀이 

 

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

 

와 속도도 내 코드보다 훨씬 빠르고 가독성도 더 좋다. 

진짜 깔끔하게 잘 푼것 같다. 

반응형