verdantjuly/코딩테스트
프로그래머스 코딩테스트 연습 : 나누어 떨어지는 숫자 배열 (20240311, java)
verdantjuly
2024. 3. 11. 17:33
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를 사용하자