V-logue

[항해99] 프로그래머스 - 나누어 떨어지는 숫자 배열 본문

항해 99/프로그래머스 Algo

[항해99] 프로그래머스 - 나누어 떨어지는 숫자 배열

보그 2022. 5. 16. 15:09

대충 이런 문제다.

function solution(arr, divisor) {
    var answer = arr.filter((value) => {return value % divisor === 0})
    answer.length === 0 ? answer.push(-1) : answer.sort((a,b) => a - b)
    return answer;
}

다 풀진 못했고,

answer = arr.filter((value) => {return value % divisor === 0})

이 부분과

answer.length === 0 ? answer.push(-1) : answer.sort((a,b) => a - b)

이 부분까지 생각해냈는데 못 풀었다.

너무 해매다 보니 정말 쉬운길을 다 생각해내고도 빙빙 돌아가다가 정답을 보고

절망에 빠져버렸다.

Filter 함수는

조건을 준 다음 그 조건에 부합하는 요소만들 새로운 배열로 반환하는 메서드다.

보통, 배열에서 원하는 데이터만을 새로 추려 배열을 새로 만들고 싶을 때 사용한다.

arr.filter(callback(element[, index[, array]])[, thisArg])

filter함수는 이렇게 이뤄져 있는데, 배열 내 요소들에 각 제공된 callback 함수를 통해 true 값만을 강제하여 값을 반환한다. 한편 sort함수도 이번에 알게 됬는데,

 

Sort 함수는

더보기

arr.sort([compareFunction])

이런식으로 사용하고, compareFunction은 정렬 순서를 의미한다.

 

일반적으로 sort 함수는 sort()로 입력되게 된다면, 유니코드 순서에따라 값을 정렬한다.

 

오름차순으로 정렬하기 위해서는 파라미터를 활용해야 하는데,

sort((a,b) => a - b)

이런식으로 두 숫자의 값 차이를 이용하면 오름차순으로 정렬할 수 있다.

Comments