본문 바로가기

verdantjuly/코딩테스트

프로그래머스 코딩테스트 연습 : 나누어 떨어지는 숫자 배열 (20240311, java)

728x90

문제 바로가기: https://school.programmers.co.kr/learn/courses/30/lessons/12910

나의 풀이

import java.util.Stack;
import java.util.Arrays;

class Solution {
    Stack<Integer> stack = new Stack<Integer>();
    public Integer[] solution(int[] arr, int divisor) {
        for(int i = 0; i< arr.length; i++){
            if (arr[i]%divisor == 0){
                stack.push(arr[i]);
            }
        }
        Integer[] answer = stack.toArray(new Integer[stack.size()]);
        Arrays.sort(answer);
        Integer[] none = {-1};
        return stack.size() == 0 ? none : answer;
    }
}

 

다른 사람의 풀이

import java.util.Arrays;

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

 

소감

stream의 filter를 사용하자