https://programmers.co.kr/learn/courses/30/lessons/12906
첫번째시도
단순하게 for문을 돌려서 앞의 인덱스와 비교했다!
function solution(arr)
{
let result =[arr[0]]
for(let i = 1; i<arr.length; i++){
if(arr[i-1]!==arr[i]){
result.push(arr[i])
}
}
return result
}
두번째 시도
filter를 사용하였는데, 위의 for문과 같은 맥락으로 풀었다.
function solution(arr)
{
return arr.filter((el,i)=>{
if(i===0){// index가 0이라면
return arr[i]===el //true값을위해서 그냥 이렇게 설정
}
return el!==arr[i-1]// el(=arr[i])과 arr[i-1]이 같지 않다면
})
}
세번째 시도
filter로 풀고 다른사람의 풀이를 보니, n 과 n+1을 비교할때는 마지막엔 arr[n], undefined가 나오기때문에 그 둘을 비교한다고 했다.
고로 이렇게 따로 if문으로 조건을 설정할 필요가 없다(더 간단)
function solution(arr)
{
return arr.filter((el,i)=>el!==arr[i+1])
}
'알고리즘 > 프로그래머스 문제-JS' 카테고리의 다른 글
[JS]숫자 문자열과 영단어 (0) | 2022.05.31 |
---|---|
[JS]가운데 글자 가져오기 (0) | 2022.05.31 |
[JS]두 정수 사이의 합 (0) | 2022.05.31 |
[JS]정수 내림차순으로 배치하기 (0) | 2022.05.23 |
[JS&Python]자연수 뒤집어 배열로 만들기 (0) | 2022.04.26 |