array
의 각 element
중 divisor
로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution
을 작성해주세요.divisor
로 나누어 떨어지는 element
가 하나도 없다면 배열에 -1
을 담아 반환하세요.입출력 예#1
arr의 원소 중 5로 나누어 떨어지는 원소는 5와 10입니다. 따라서 [5, 10]을 리턴합니다.
입출력 예#2
arr의 모든 원소는 1으로 나누어 떨어집니다. 원소를 오름차순으로 정렬해 [1, 2, 3, 36]을 리턴합니다.
입출력 예#3
3, 2, 6은 10으로 나누어 떨어지지 않습니다. 나누어 떨어지는 원소가 없으므로 [-1]을 리턴합니다.
function solution(arr, divisor) {
let 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);
}
answer
초기화divisor
로 나눈값이 나누어 떨어지면 answer
에 index
요소 push
divisor
로 나눈값이 나누어 떨어지지 않아서 answer
의 길이가 0
이면(요소가 없으면) answer에 -1
을 pushanswer
의 값을 sort
로 오름차순 정렬 후 return function solution(arr, divisor) { // 원래 내가 풀려고 했던 풀이 (map)
let answer = [];
arr.map((v) => {
v % divisor === 0 && answer.push(v);
})
return answer.length ? answer.sort((a, b) => a - b) : [-1];
}
map
으로 arr
순회 후 각 요소가 divisor
로 나누어 떨어지면 answer
에 push
[-1]
을 return원래 map으로 풀 생각 이었지만 코드가 잘 생각이 안나서 for문으로 풀긴 했는데 다른 분의 map풀이를 보고 사이다를 마신기분💊