알고리즘 문제-나누어 떨어지는 숫자 배열

성민·2023년 1월 28일
0

알고리즘 공부

목록 보기
2/3

문제 설명

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

제한사항

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

풀이방법(java)

배열을 정렬
divisor로 나누어 떨어지는 값을 list에 추가
해당하는 값이 없으면 -1을 배열에 추가

import java.util.*;

class Solution {
    public int[] solution(int[] arr, int divisor) {
        int[] answer = {};
        
        List<Integer> list = new ArrayList<>();
        
        Arrays.sort(arr);
        
        for (int v : arr) {
            if (v % divisor == 0) {
                list.add(v);
            }
        }
        
        if (list.size() == 0) {
            list.add(-1);
        }
        
        answer = list.stream().mapToInt(Integer::intValue).toArray();
        
        return answer;
    }
}

풀이방법(js)

divisor로 나누어 떨어지는 값을 필터한 후 오름차순 정렬 필터된 배열의 길이가 0이면 [-1]을 리턴

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

0개의 댓글