문제 출처 - Programmers
문제는 여기
[풀이]
1. Arrays.stream으로 배열의 요소를 가져온다.
2. filter를 사용해 조건에 해당하는 요소를 구한다.
3. toArray를 사용해 2에서 나온 요소들을 배열에 담아준다.
4. 배열이 비어있을 때 -1을 출력한다는 조건을 만족하게 하기 위해 -1을 담아준다.
5. 배열을 오름차순으로 정렬해서 출력해주어야 하므로 sort를 해준다.
[접근]
1. 처음에는 정석대로 문제를 해결하였다.
2. 더 짧은 방식이 없을까 하고 검색을 해보니 Arrays.stream을 활용한 방법이 있는것을 확인할 수 있었다.
[코드]
import java.util.*;
class Solution {
public int[] solution(int[] arr, int divisor) {
// Arrays.stream(array).filter(요소 -> 조건)
// Arrays.stream() == 배열의 요소를 가져오기
// + Arrays.stream(arr, int a, int b) == arr[a]~arr[b-1]의 요소들을 들고옴
// 조건에 해당하는 요소 == filter
// toArray() 배열로 만들기
// 즉, arr의 요소를 들고와 조건을 만족하는 것을 배열로 만들기
int[] answer = Arrays.stream(arr).filter(i -> i % divisor == 0).toArray();
// 배열이 비어있으면 -1을 출력해야 하므로
if(answer.length == 0)
answer = new int[] {-1};
// 오름차순으로 출력해야 하므로 정렬하기
Arrays.sort(answer);
return answer;
}
}
'문제 풀이 > Programmers' 카테고리의 다른 글
[프로그래머스] 음양더하기 (JAVA) (0) | 2022.03.05 |
---|---|
[프로그래머스] 내적 (JAVA) (0) | 2022.03.04 |
[프로그래머스] 크레인 인형뽑기 게임 (JAVA) (0) | 2022.03.04 |
[프로그래머스] 숫자 문자열과 영단어 (JAVA) (0) | 2022.03.04 |
[프로그래머스] 위장 (JAVA) (0) | 2022.02.28 |