내 코드
import java.util.*;
class Solution {
public int[] solution(int[] arr, int divisor) {
List<Integer> answer = new ArrayList<>();
for(int i : arr) {
if(i % divisor == 0) {
answer.add(i);
}
}
answer.sort(Comparator.naturalOrder());
if(answer.size() == 0) answer.add(-1);
return answer.stream().mapToInt(i -> i).toArray();
}
}
일단 리스트를 만들어서 (6번째 줄)
arr에 있는 값이 divisor로 나누어 떨어지면 리스트에 arr의 값을 넣고, (8-12번째 줄)
이 리스트를 오름차순으로 정렬하고, (14번째 줄)
만약에 나누어 떨어지는 element가 하나도 없으면 배열에 -1을 담고, (16번째 줄)
이 리스트를 스트림으로 변환한 후 (.stream()
) ,
map을 이용해 intStream을 가져오고 (.mapToInt(i -> i)
),
.toArray()
를 통해 배열로 만든다. (18번째 줄)
다른 분들 코드를 보았더니 stream의 filter를 사용하셨다.. 우와
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
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};
Arrays.sort(answer);
return answer;
}
}
(참고)
✔ 리스트 오름차순 정렬
Java :: ArrayList 정렬을 위한 sort 메소드 파해치기
개요 필자는 모 사이트에서 프로그래밍 문제를 해결하던 중, 입력된 데이터를 오름차순으로 정렬하여 리턴하라는 문제가 있어 해당 메소드에 대해 알아보았다. List에는 데이터 정렬을 위한 sort
manorgass.tistory.com
✔ 리스트를 배열로 변환
[Java] Integer ArrayList을 int 배열로 변환 방법
String 타입의 List를 배열로 변환할 때는 toArray()를 사용하면 변환할 수 있다. 하지만 int형과 같은 primitive 타입은 toArray()를 사용할 수 없다. 따라서 int형과 같은 primitive 타입은 아래의 방법을 통해
velog.io
'코테 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/Lv. 1] K번째수 (0) | 2023.02.21 |
---|---|
[프로그래머스/Lv. 1] 가운데 글자 가져오기 (0) | 2023.02.20 |
[프로그래머스/Lv. 1] 최대공약수와 최소공배수 (0) | 2023.02.20 |
[프로그래머스/Lv. 1] 문자열을 정수로 바꾸기 (0) | 2023.02.20 |
[프로그래머스/Lv. 1] 내적 (0) | 2023.02.20 |