* 참고 : 약수는 어떤 수를 나누어 딱 떨어지는 수를 말한다.
- 내 풀이
import java.util.stream.IntStream;
class Solution {
public int[] solution(int n) {
int[] answer = {};
int count = 0;
answer = new int[(int) IntStream.rangeClosed(1 , n).filter(value -> n % value == 0).count()];
for (int i = 1; i <= n; i++) {
if(n % i == 0){
answer[count] = i;
count++;
}
}
return answer;
}
}
answer 배열의 초기화를 위해 약수의 개수만을 구해서 나머지 값이 0일때마다 넣어주는 방식으로 풀이.
import java.util.stream.IntStream;
class Solution {
public int[] solution(int n) {
int[] answer = {};
answer = IntStream.rangeClosed(1, n).filter(i -> (n % i == 0)).toArray();
return answer;
}
}
return 에 IntStream.rangeClosed(1, n).filter(i -> (n % i == 0)).toArray(); 한줄로도 해결이 되나
주어진 변수와 틀을 변형하지 않고 싶어서 배열 초기화와 변수를 담아주고 return 함.
- 다른 사람 풀이
import java.util.List;
import java.util.ArrayList;
class Solution {
public int[] solution(int n) {
List<Integer> answer = new ArrayList<>();
for(int i=1; i<=n; i++){
if(n % i == 0){
answer.add(i);
}
}
return answer.stream().mapToInt(x -> x).toArray();
}
}
import java.util.*;
class Solution {
public int[] solution(int n) {
int[] answer = {};
ArrayList<Integer> test_list = new ArrayList<>();
for(int i = 1; i<=n; i++){
if(n % i == 0) test_list.add(i);
}
answer = new int[test_list.size()];
for(int j = 0; j<test_list.size(); j++){
answer[j] = test_list.get(j);
}
return answer;
}
}
'프로그래머스 > [프로그래머스 - JAVA] Lv.0' 카테고리의 다른 글
[프로그래머스 - JAVA] 문자열 정렬하기(2) (0) | 2023.03.11 |
---|---|
[프로그래머스 - JAVA] 숫자 찾기 (0) | 2023.03.11 |
[프로그래머스 - JAVA] 369게임 (0) | 2023.03.11 |
[프로그래머스 - JAVA] 피자 나눠 먹기(2) (0) | 2023.03.10 |
[프로그래머스 - JAVA] 외계행성의 나이 (0) | 2023.03.10 |
댓글