알고리즘, 자료구조/프로그래머스

[프로그래머스/javascript] 나누어 떨어지는 숫자 배열 문제 풀기

soohkang 2021. 4. 7. 01:31
728x90

문제

정답 처리된 코드(1)

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);
    answer.sort((a, b) => (a-b));
    return answer;
}

문제 이해

1) arr 배열 길이만큼 회전하면서 divisor와 나눈 나머지가 0인 값을 answer 배열에 push 한다.

2) answer 배열 길이가 0이면 나누어 떨어지는 값이 없다는 의미이므로 -1을 push 한다.

3) 오름 차순 정렬을 위한 처리를 한다.

 


정답 처리된 코드(2)

다른 사람의 풀이에서 좋아요가 가장 많은 코드이다.

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

문제 이해

1) filter를 활용한 예시를 확인할 수 있다.

2) answer 배열이 0일 때와 오름 차순 정렬 방법을 확인할 수 있다.

 

 

 

출처: programmers.co.kr/learn/courses/30/lessons/12910?language=javascript

 

코딩테스트 연습 - 나누어 떨어지는 숫자 배열

array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하

programmers.co.kr