CS/프로그래머스

문제 // Programmers // LEVEL1 // Array // 나누어 떨어지는 숫자 배열 // Java

문스코딩 2018. 9. 11. 16:36

프로그래머스

나누어 떨어지는 숫자 배열

업데이트 :: 2018.09.11



문제

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

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

코드

1차풀이

public int[] solution(int[] arr, int divisor) {
      // arr - 중복없는 자연수
      // arr length - 1 이상
      // divisor - 자연수

      List<Integer> tempAnswer = new ArrayList<>();
      for(int a : arr) {
          if(a % divisor == 0)
              tempAnswer.add(a);
      }

      // == Exception ==
      if(tempAnswer.size() == 0)
          return new int[]{-1};

      // == List -> Array ==
      int[] answer = new int[tempAnswer.size()];
      for(int i=0; i<tempAnswer.size(); i++)
          answer[i] = tempAnswer.get(i);

      Arrays.sort(answer);
      return answer;
  }

예제

stream API 이용

class Divisible {
    public int[] divisible(int[] array, int divisor) {
        return Arrays.stream(array).filter(factor -> factor % divisor == 0).toArray();
    }
}

Created by MoonsCoding

e-mail :: jm921106@gmail.com

반응형