[프로그래머스] 나누어 떨어지는 숫자

이한솔·2023년 9월 26일
0

프로그래머스_레벨1

목록 보기
11/65

✨️ 문제 설명

: array의 각 요소 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수 작성, 없을 경우 -1을 반환

-> 자세한 내용 확인하기

🎲 자바 풀이

import java.util.*;
class Solution {
    public int[] solution(int[] arr, int divisor) {
        int[] answer =  Arrays.stream(arr)
            .filter(number -> number % divisor == 0 )
            .sorted()
            .toArray();
        if(answer.length == 0) return new int[] {-1};
        return answer;
    }
}

풀이 설명

: 배열을 stream으로 변환
: .filter(number -> number % divisor == 0) : filter 매서드를 이용하여 스트림에서 조건(divisor로 나누어 떨어지는 수)을 만족하는 요소만 선택
: sorted().toArray() : 오름차순으로 정렬하여 배열로 반환

처음 풀이

import java.util.*;
class Solution {
   public int[] solution(int[] arr, int divisor) {
       List<Integer> list = new ArrayList<>();
       for(int num : arr){
           if(num % divisor == 0) list.add(num);
       }
       if(list.isEmpty()) return new int[] {-1};
       int[] answer = list.stream().mapToInt(i -> i).toArray();
       Arrays.sort(answer);
       return answer;
   }
}

: 처음에는 ArrayList로 해당 조건에 만족하는 리스트를 만들어서 배열로 반환하는 코드로 작성했다.
: 중간에 어차피 stream 쓸거면 filter 매서드를 사용하는 게 낫겠다 싶어 다시 풀이하였다.

profile
개인 공부용

0개의 댓글