https://school.programmers.co.kr/learn/courses/30/lessons/120897
정수 n이 어떤 수 인지 모르기 때문에 몇개의 약수를 가지고 있는지 알 수 없다.
그렇기 때문에 고정된 길이를가진 배열을 사용하지 않고 가변배열인 ArrayList를 사용하여 answerList라는 변수명으로 선언한다.
반복문을 사용해 1부터 시작해 정수 n까지 반복하는데 정수 n이 1부터시작해서 1씩 증가하는 i 와 나누었을 때 몫이 0인것이
정수 n의 약수라고 할 수 있으니 해당 i 들을 arrayList에 add한다.
이 상태로 실행을 했을 때 메서드의 형식이 맞지 않아 오류가 뜨게 된다.
이제 형변환을 해줄 것이다. stream을 활용해 ArrayList를 Array로 형변환 한다.
.stream().mapToInt(i -> i).toArray()
import java.util.*;
class Solution {
public int[] solution(int n) {
ArrayList<Integer> answerList = new ArrayList();
for(int i=1; i<=n; i++){
if(n%i==0){
answerList.add(i);
}
}
return answerList.stream().
mapToInt(i -> i).toArray();
}
}
물론 메서드의 형식을 바꾸면 answerList로 리턴을 해줘도 상관은 없다.
import java.util.*;
class Solution {
public ArrayList<Integer> solution(int n) {
ArrayList<Integer> answerList = new ArrayList();
for(int i=1; i<=n; i++){
if(n%i==0){
answerList.add(i);
}
}
// return answerList.stream().
// mapToInt(i -> i).toArray();
return answerList;
}
}
'프로그래머스 문제풀어보기' 카테고리의 다른 글
[Lv.0] 문자열 정렬하기(2) (0) | 2023.03.02 |
---|---|
[Lv.0] 369게임 (0) | 2023.03.02 |
[Lv.0] 피자 나눠 먹기(2) (0) | 2023.02.28 |
[Lv.0] 가장 큰 수 찾기 (0) | 2023.02.27 |
[Lv.0] 가장 큰 수 찾기 (0) | 2023.02.26 |
댓글