Notice
Recent Posts
Recent Comments
Link
«   2026/04   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
Archives
Today
Total
관리 메뉴

나를 위한 기록

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

Today I Learned

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

솔솔이소리솔 2023. 11. 22. 23:06
오늘 푼 문제 설명.

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

제한사항
arr은 자연수를 담은 배열입니다. 정수 i, j에 대해 i ≠ j 이면 arr [i] ≠ arr [j]입니다. divisor는 자연수입니다. array는 길이 1 이상인 배열입니다.

1. 먼저, 문제를 이해하기 위해 주어진 배열을 순회하며 특정 수로 나누어 떨어지는지 여부를 판별하는 필터링 과정을 생각했다.

2. 그래서 filter함수를 사용하여 주어진 배열에서 조건에 맞는 요소들을 골라내었다. 그리고 이를 임시배열  filteted에 저장했다.

 

3. 다음으로, 나누어 떨어지는 수가 하나도 없는 경우를 처리하기 위해 임시 배열 'filtered'의 길이를 확인했다.

길이가 0이면 나누어 떨어지는 수가 없다는 뜻이므로, -1을 filtered에 추가하고 해당 배열을 반환했다.

 

4. 만약 나누어 떨어지는 수가 있다면, sort함수를 사용하여 배열을 오름차순으로 정렬했다. 이후 정렬된 배열을 반환하여 문제를 해결했다.

function solution(arr, divisor) {

    const filtered = arr.filter(e => e % divisor === 0 );
    if(filtered.length === 0 ){
        filtered.push(-1);
        return filtered
    }

    return filtered.sort((a, b) => a - b);
}

 

다른 사람들의 풀이를 보면 더 짧고 간결하게 쓰신 분들도 있지만 나는 이만큼 한 것으로도 만족...