자세한 문제는 아래 프로그래머스 링크 참조바란다.
https://school.programmers.co.kr/learn/courses/30/lessons/12906
나의 풀이는 아래와 같다.
function solution(arr)
{
var answer = []
arr.map((_, i)=>{if (arr[i]!==arr[i-1]) {
answer.push(arr[i])
}
});
return answer
}
arr = [4,4,4,3,3]
console.log(solution(arr))
풀면서 중요했던 포인트는 map() 메서드가 arr을 돌면서 이전 인덱스 요소와 값이 다른 요소만 var answer [] 배열에 넣는다는 것이다.
굳이 빈 배열을 하나 만들것도 없이 그냥 arr에다 필터를 써서 이전 인덱스 요소와 값이 다른 요소만 남겨도 될 뻔했다. 그래서 filter() 를 써서 만들어 보았다.
function solution(arr)
{
return arr.filter((v, i)=>arr[i]!==arr[i-1])
}
arr = [1,1,3,3,0,1,1]
console.log(solution(arr))
filter 아이디어는 다른 사람의 것을 빌려왔다. 코드는 내가 짰다.
'알고리즘 코딩' 카테고리의 다른 글
재귀함수. 집요한 정리 (0) | 2023.04.22 |
---|---|
배열에서 문자열 요소들을 오름차순 정렬하면 대문자부터 나온다. (0) | 2023.04.21 |
최소직사각형 알고리즘 feat. apply() 메서드 (0) | 2023.04.18 |
자연수가 하샤드 수인지 판별하는 알고리즘 (0) | 2023.04.18 |
자연수가 몇 번째 콜라프 작업에서 1이 되는지 파악하는 알고리즘 (0) | 2023.04.17 |