나의 풀이
아 이거 스택문제이구나 싶어서 바로 풀었는데 처음에는 시간초과가 났다.
배열의 크기가 1,00,000이하이기 때문에 가독성 조금 더 좋은 forEach로 충분히 커버가능할 것 같았지만 결과는 시간초과
그래서 결국 아래처럼 for문으로 바꾸고 나니 통과
여기서 의문이 들었다. for과 forEach의 속도 차이가 그렇게 크지 않기 때문에 크기 1,000,000정도는 간단한코드이기에 괜찮을 것 같았는데 이런결과가 나오다니 내가 둘의 차이를 제대로 모르는 것 같았다.
그래서 아래와 같은 글을 작성했다.
https://html-jc.tistory.com/648
풀이 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]);
}
와 속도도 내 코드보다 훨씬 빠르고 가독성도 더 좋다.
진짜 깔끔하게 잘 푼것 같다.
728x90
'알고리즘 > 프로그래머스 - JS' 카테고리의 다른 글
[프로그래머스] level.2 기능개발 (0) | 2023.05.19 |
---|---|
[프로그래머스] level.2 조이스틱 ★ (0) | 2023.05.18 |
[프로그래머스] level.1 덧칠하기 (0) | 2023.05.16 |
[프로그래머스] level.1 추억 점수 (0) | 2023.05.16 |
[프로그래머스] level.1 크기가 작은 부분 문자열 (0) | 2023.04.25 |