문제 설명
array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요.divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.
제한사항
- arr은 자연수를 담은 배열입니다.
- 정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 입니다.
- divisor는 자연수입니다.
- array는 길이 1 이상인 배열입니다.
1. 소수점 없는 숫자를 분류하는 방법을 찾고 ( el % divisor == 0) %는 나눈 나머지 값을 반환 하기 때문에 0이면 정수를 의미합니다.
2. 빈 배열과 체크하는 함수를 만들고 return 값에 따라 빈 배열에 -1를 push하고 빈배열이 아니면 오름차순으로 정리해서 값을 리턴하도록 했다.
const ar = [3,2,7]
const di = 10
function solution(arr, divisor) {
var answer = [];
arr.forEach(el => {
// 소수점이 없는 숫자를 찾아서 answer에 저장한다.
if(el % divisor == 0){
answer.push(el);
}
});
//isEmptyArr이라는 함수를 만들어서 빈 배열를 체크하고 -1 push한다.
if(isEmptyArr(answer)){
answer.push(-1);
return answer;
}else{
answer.sort((a , b)=> a - b)
return answer;
}
}
function isEmptyArr(arr) {
// 배열의 수가 없으면
if(Array.isArray(arr) && arr.length === 0) {
return true;
}
return false;
}
solution(ar, di)
'개발일기 > 알고리즘' 카테고리의 다른 글
행렬의 덧셈 (0) | 2021.11.10 |
---|---|
20번 문제 완주하지 못한 선수 (0) | 2021.11.08 |
행렬의 덧셈 (0) | 2021.11.08 |
음양 더하기 (0) | 2021.11.08 |
문자열 정수로 바꾸기 (0) | 2021.11.08 |