- 문제 설명
array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요.
divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.
- 풀이 과정
- 배열을 순회하여 divior의 나머지가 0인 요소들을 찾으면 될 것 같았다.
- 요소들을 찾아서 배열에 까지 잘 넣었으나 else 조건을 둘 경우 나머지가 있는 요소들 조차 배열에 들어가는 현상이 발생하여 고민을 하게 되었다.
- else 조건을 없애면 나머지가 없는 배열에서는 빈 배열이 반환되었다.
- 그래서 빈 배열을 확인해서 결과값을 도출하면 될 것이라 생각했다.
- 빈 배열일 경우 아래처럼 길이가 0임을 이용하면 된다.
if ( answer.length == 0 )
function solution(arr, divisor) {
var answer = [];
for (let i = 0; i < arr.length; i++) {
if ( arr[i]%divisor === 0) {
answer.push(arr[i]);
}
}
if ( answer.length == 0 ) {
answer.push(-1);
}
return answer.sort((a,b) => (a-b));
}
console.log(solution([3,2,6], 10));