나의 풀이
import java.util.ArrayList;
class Solution {
public int[] solution(int n) {
int[] answer = {};
ArrayList<Integer> arr= new ArrayList<>();
for(int i=1; i<=n; i++){
if(n % i ==0){
arr.add(i);
}
}
return arr.stream().mapToInt(i->i).toArray();
}
}
▶ 배열의 크기가 일정하지 않은 경우에는 일단 list에 넣자★★
다른 사람의 풀이
import java.util.stream.IntStream;
import java.util.Arrays;
class Solution {
public int[] solution(int n) {
return IntStream.rangeClosed(1, n).filter(i -> n % i == 0).toArray();
}
}
▶ 연속된 숫자의 경우 IntStream의 range() 또는 rangeClosed() 를 이용하자.
▶ filter()는 조건에 맞는 값들을 추출한다.
※ range() : 끝값을 포함하지 않는다.
rangeClosed() : 끝값을 포함한다.
'프로그래머스(자바) > LV.0(자바)' 카테고리의 다른 글
인덱스바꾸기★ 문자열→문자열배열→List swap(), join() (0) | 2022.11.24 |
---|---|
주사위의 개수 → 연산의 순서에 주의하자 (괄호의 중요성) (0) | 2022.11.24 |
가장 큰 수 찾기→max(Integer::compareTo).ortElse(0) ★ (0) | 2022.11.24 |
n배수 고르기 - List를 int형 배열로 전환★ +filter()★ (0) | 2022.11.24 |
문자열 정렬하기(2) - String클래스의 toCharArray() (0) | 2022.11.24 |