30분정도 소요.. 미쳤습니까? 정신차려라.
메모리: 83.1 MB, 시간: 24.93 ms
코딩테스트 연습 > 스택/큐
Empty
배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다. 예를 들면,
배열 arr에서 연속적으로 나타나는 숫자는 제거하고 남은 수들을 return 하는 solution 함수를 완성해 주세요.
arr | answer |
---|---|
[1,1,3,3,0,1,1] | [1,3,0,1] |
[4,4,4,3,3] | [4,3] |
입출력 예 #1,2
문제의 예시와 같습니다.
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges
반복문 사용해서 인덱스와 바로 다음 인덱스의 값이 같으면 shift나 splice로 해당 인덱스를 제거(?)
➡️ 원하는대로 동작안함. 배열 첫 원소에만 적용되고 다음부턴 어떻게 풀어갈지 막막해짐.
같은 방식이지만 filter를 써보자.
➡️ 항상 콜백에 element만 써왔는데 검색 후 index, source(순회할 객체)도 사용하면 되겠다는 판단이 듦.
function solution(arr)
{
const copy = arr.filter((ele, idx, source)=>
ele != source[idx+1]
)
return copy
}