[프로그래머스] Lv.1 나누어 떨어지는 숫자 배열 (JavaScript)

혜린·2022년 2월 11일
0
post-thumbnail

🔐 문제

문제설명

array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하라.
divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환할 것.

입출력 예

  • arr의 원소 중 5로 나누어 떨어지는 원소는 5와 10이다. 따라서 [5, 10]을 리턴한다.

🔑 풀이

// solution 1
function solution(arr, divisor) {
    let answer = [];
    for(let i = 0; i < arr.length; i++) {
        if(arr[i] % divisor === 0){
            answer.push(arr[i]);
            answer.sort((a, b) => a - b);
        } 
    }
    if (answer.length === 0) {
        answer = [-1];
    }
		return answer;
}
// solution 2
function solution(arr, divisor) {
    let answer = arr.filter((v, i) => v % divisor === 0).sort((a, b) => a - b);
    if(answer.length === 0){
        return [-1];
    }
    return answer;
}

📍 풀이과정

  • for문을 사용해 arr의 원소 중 divisor로 나눠떨어지는 원소를 빈배열 answer에 추가시켜주었다.
  • filter()를 사용해 해당되는 원소만을 걸러내줄 수 있을 것 같아 filter()를 사용해 다시 풀어보았다.
    - arr의 원소 중 divisor로 나눠떨어지는 원소를 filter()로 걸러낸 뒤, sort()를 사용해 오름차순 정렬시켜준다.
    - 배열에 원소가 하나도 없다면 [-1]을 반환하는 조건을 추가해준다.
profile
FE Developer

0개의 댓글